多年以来我都是PHP开发人员,但我不知道PHP如何在幕后处理变量及其类型的一个细节.我的意思是:在PHP中 - 理论上 - 我可以使用相同的变量来存储整数,然后是一个字符串,然后是一个布尔值,然后是一个数组......等等......
就个人而言,我厌恶这种"糟糕的"编程方式,但我想知道PHP如何存储和管理变量及其类型.我想解释器后面创建和处理C变量,但我无法弄清楚如何.
谢谢.
dus*_*uff 12
在幕后,PHP变量存储在"zval"结构中,该结构由变量可以存储的所有数据类型之间的联合组成(例如,long,double,字符串指针/长度,对象指针...),以及联盟之外的其他几个字段,它们指示它是哪种类型并跟踪引用计数.
对此有一些进一步的讨论:
http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/