
【php内核】
rorntuck7
这个作者很懒,什么都没留下…
展开
-
【php7内核】变量的内部实现
最近在读php7内核,本文是由《PHP7内核剖析》整理而来。 变量的内部实现 变量是一个语言实现的基础,变量有两个组成部分:变量名、变量值,PHP中可以将其对应为:zval、zend_value,这两个概念一定要区分开,PHP中变量的内存是通过引用计数进行管理的,而且PHP7中引用计数是在zend_value而不是zval上,变量之间的传递、赋值通常也是针对zend_value。PHP中可以通...原创 2019-01-05 10:19:49 · 300 阅读 · 0 评论 -
【php7内核】数组的实现
数组是PHP中非常强大、灵活的一种数据类型,它的底层实现为散列表(HashTable,也称作:哈希表),除了我们熟悉的PHP用户空间的Array类型之外,内核中也随处用到散列表,比如函数、类、常量、已include文件的索引表、全局符号表等都用的HashTable存储。散列表是根据关键码值(Key value)而直接进行访问的数据结构,它的key - value之间存在一个映射函数,...原创 2019-01-05 16:37:37 · 1053 阅读 · 0 评论 -
【php7内核】静态变量,全局变量,常量的实现
最近在读php7内核,本文是由《PHP7内核剖析》整理而来。 静态变量 PHP中局部变量分配在zend_execute_data结构上,每次执行zend_op_array都会生成一个新的zend_execute_data,局部变量在执行之初分配,然后在执行结束时释放,这是局部变量的生命周期,而局部变量中有一种特殊的类型:静态变量,它们不会在函数执行完后释放,当程序执行离开函数域时静态变量的值被...原创 2019-01-06 15:29:46 · 1106 阅读 · 0 评论