PHP的原始变量类型有:
在php5.3之前,使用单纯的 "引用计数":
在php5.3之后,引入了更加完善的垃圾回收机制(解决了循环引用的内存泄漏问题):
每个php变量存在一个叫 "zval" 的变量容器中。一个zval变量容器除了包含变量的类型和值,还包含两个字节的额外信息。
第一个是is_ref
,是一个bool值,用来表示这个变量是否属于引用集合(reference set)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,来优化内存使用。