请问xdebug_debug_zval('p1') 的is_ref值为什么是0?

来源:2-2 PHP引用变量考察点(下)

heibaimeng

2017-08-30

p1 p2 变量指向同一个空间,为何xdebug_debug_zval('p1'); 得到"refcount" 2,而is_ref" 为0?

那么p1和p2是不是引用变量呢?官方说is_ref用来标识这个变量是否是属于引用集合,通过这个字节,php引擎才能把普通变量和引用变量,看不太明白。。

为什么xdebug_debug_zval('p1') 是0,而上一章$a = range(0, 3); 的"is_ref" 1呢?如何判定呢?

求解,谢谢了!

写回答

1回答

Jason

2017-08-31

因为对象的特殊性,本身p1和p2就是引用的关系,is_ref只会记录我们引用的显示声明,也就是&,而不会记录对象的隐式声明,其实p1和p2就是引用关系,此原理只适用于对象

0
1
heibaimeng
非常感谢!
2017-08-31
共1条回复

360大牛带你横扫PHP职场 全面解读PHP面试

全面、系统剖析PHP面试,拿下心仪Offer

1817 学习 · 464 问题

查看课程