- zend_reference的定义
struct _zend_reference {
zend_refcounted_h gc;
zval val;
};
zend_reference定义了一个gc和一个zval。
zend_reference在以下情况下会使用到:
<?php
$a = 'string';
$b = &$a;
此时变量a和变量b均变成了zend_reference,zval中的type变成了10, 也就是定义的
#define IS_REFERENCE 10
,他们均指向一个zend_string。这就是在修改了变量b之后,为什么变量a的值也会变化的原因。