PHP内核介绍及扩展开发指南(5)
发布时间:2021-06-08
发布时间:2021-06-08
介绍PHP的一些内部机制,包括变量存储、数组实现等,随后详细介绍如何编写PHP扩展
根据这个表格可以发现两个有意思的地方:首先是PHP的数组其实就是一个HashTable,这就解释了为什么PHP能够支持关联数组了;其次,Resource就是一个long值,它里面存放的通常是个指针、一个内部数组的index或者其它什么只有创建者自己才知道的东西,可以将其视作一个handle。 1.1.2 引用计数
引用计数在垃圾收集、内存池以及字符串等地方应用广泛,Zend就实现了典型的引用计数。多个PHP变量可以通过引用计数机制来共享同一份zval,zval中剩余的两个成员is_ref和refcount就用来支持这种共享。
很明显,refcount用于计数,当增减引用时,这个值也相应的递增和递减,一旦减到零,Zend就会回收该zval。
那么is_ref呢? 1.1.3 zval状态
在PHP中,变量有两种——引用和非引用的,它们在Zend中都