一、PHP 的编译特点
注:脚本一运行结束,opcode 将会被清除;但是第三方工具:apc,xcache 等加速器可以保存 opcode
二、PHP 变量的底层实现
由 zend 虚拟机实现,zend 虚拟机是用 C 语言开发的
疑问:PHP 中有8种数据类型,但为什么 zval->value 联合体中,只有5种?
答:① NULL,直接 zval->type = IS_NULL,就可以表示,不必设置 value 的值
② BOOL型 , zval->type = IS_BOOL,再设置 zval.value = 1/0
③ Resourc型,资源型 往往是服务器上打开的一个接口,如果文件读取接口,zval->type = IS_RESOURCE, zval.value = 服务器上打开的接口的编号
三、PHP 变量名的记录
记录在全局符号表中
四、is_refcount__gc 和 is_ref__gc
1、is_refcount__gc:引用该结构体的变量个数
2、is_ref_gc:是否有引用传递
五、数组
1、存储与分裂
2、foreach
思考:
六、函数
1、函数的结构体
2、静态变量
七、常量
1、php 底层是如何区别是系统定义的常量还是用户定义的常量:在 define 函数中声明
2、php 常量实现全局访问的原理
3、define 函数的两个现象
八、对象
1、对象的存储
2、例子