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的值也会变化的原因。