php底层分析 [ 新手入门 ]
作者:鲁鲁槟 出处:http://www.luluqi.cn/post/default/show-post?id=90
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
1、PHP 的编译特点
注:脚本一运行结束,opcode 将会被清除;但是第三方工具:apc,xcache 等加速器可以保存 opcode
2、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 = 服务器上打开的接口的编号
3、PHP 变量名的记录:记录在全局符号表中
4、is_refcount__gc 和 is_ref__gc
① is_refcount__gc:引用该结构体的变量个数
② is_ref_gc:是否有引用传递
5、数组
① 存储与分裂
② foreach
思考:
6、函数
① 函数的结构体
② 静态变量
7、常量
① php 底层是如何区别是系统定义的常量还是用户定义的常量:在 define 函数中声明
② php 常量实现全局访问的原理
③ define 函数的两个现象
8、对象
① 对象的存储
②例子
9、php 的内存分层
注:如有疑问或者有更好的方法,请加入 QQ 群 453300767 进行讨论或在下方进行评论。
共 5 条回复
鲁鲁槟 东莞
最后登录:2024-08-09
在线时长:124小时36分
- 粉丝110
- 金钱5620
- 威望140
- 积分8260