生成器大部分功能实现自迭代器,所以理解生成器之前必须先学会迭代器的相关概念和功能。 // 很明显生成器类实现了迭代器接口的方法 Generator implements Iterator { // 实现迭代器的五个方法 public cur...
PHP
PHP预定义接口知识梳理
开发PHP多年对预定义接口方面多多少少接触过,至今没有个系统的认识。趁着有时间将这块知识梳理下,方便记忆。(所有梳理内容建立在PHP7版本之上,更低版本差异自动忽略) 官方手册已经将预定义接口分类明确: ...
记一次编写PHP抽奖功能的实现
最近项目需要一个抽奖活动,因为以前没有搞过,所以对抽奖功能使用的核心算法不知道哪种更保险。通过几次测试验证觉得还不错,在此记录一下。 抽奖功能前提的数据表: # type字段必须设置一个空奖类型(此...
使用WebSocket与PHP通信的思路梳理(三)
上篇简单的写了下多进程模型的实现方式,本篇就写写IO多路复用模型的实现方式。 常用的IO多路复用模型有三种: select模型:早期解决方案,通过轮询方式监控客户端资源,但是在单个进程能够监视的客户端资...
使用WebSocket与PHP通信的思路梳理(二)
上篇Socket服务器只是跑通,要想跑起来(忽略效率)使用还有很长的路要走。但是其中的函数使用方法还是要熟练掌握。所有实践代码都是完全过程写法,虽然不够优雅,但是对于理解代码思路却比面向对象的方式要好的多...
使用WebSocket与PHP通信的思路梳理(一)
使用PHP的socket扩展与WebSocket通信,在讲解之前先大致的过一遍一些比较重要的socket扩展函数。这些函数除错误相关函数(socket_last_error/socket_strerror)之外,在执行错误时都将返回FALSE,可作为错误判断。...
关于PHP中线程安全与非线程安全的解释
开篇之前可能需要先了解下线程、进程、CGI、FastCGI等概念 线程安全(Thread Safety简称TS) 在PHP多线程环境中,多个线程共享除函数调用栈之外的其他资源,共享资源包括全局变量、全局静态变量、局部静态变...
记录下PHP中的魔术方法
PHP中的魔术方法:程序在特定事件中自动调用的类方法(前提条件是类中定义了相应的魔术方法)。 __autoload() 首先说明下,该函数不叫魔术方法。当程序尝试加载未定义的类时自动调用该函数。该函数已经不被...
了解PHP中进程、线程和协程的基本概念
在理解三个“程”之前,需先区分并行与并发的概念。并行指多个事件在同一时刻发生(如多个处理器可以同时处理多个任务的能力)。并发指多个事件在同一时间间隔发生(如一个处理器有处理多个任务的能力,不一定是同时)...
PHP中的CGI、PHP-CGI、FastCGI、PHP-FPM到底是什么?
根据自己的理解以及查阅部分文章资料后,简单的总结了下各自的概念、联系、区别。部分用词不甚严谨,以后对各种原理理解深入时,再回过头来更改。该文只做参考。 CGI(Common Gateway Interface): 公共网...