PHP 底层分析

一、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、函数的结构体

 

1、对象的存储

2、例子

九、php 的内存分层

 

2、静态变量

七、常量

1、php 底层是如何区别是系统定义的常量还是用户定义的常量:在 define 函数中声明

2、php 常量实现全局访问的原理

3、define 函数的两个现象

八、对象

1、对象的存储

2、例子

九、php 的内存分层

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值