引用类型_zend_reference
1 |
|
4、5 行输出$a和$b 都是引用类型,$b引用$a,但是$a也会变成引用类型 zend_reference,$a 和$b 的 zval 都指向同一个 zend_reference。zend_reference 中的 zval 中的 u1.type=6,表示字符串类型, p *z.value.ref.val.value.str.val@6
string
8、9 行$a和$b 指向的 zend_reference 中的 zval 类型还是字符串,但是打印出来已经都是 helle!了
12 行 $b 指向的 zval 显示类型是 0,也就是 IS_UNDEF
13 行 $a 的 zval 的 type 依然是 10(引用类型), 打印仍然是 hello!
可以看出, 11 行 unset($b)的操作,仅仅是把$b 的 zval 中的 type 由 10 改成 0, 其他的完全不动。