老师,这里两个数组的元素的refcount 为什么不一样,还有$a的元素的refcount与老师运行打印的也不一样

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

纸短情长阿

2018-03-24

$data = array('a','b');

xdebug_debug_zval('data');

//data: (refcount=1, is_ref=0)=array (0 => (refcount=2, is_ref=0)='a', 1 => (refcount=2, is_ref=0)='b')

$a = range(0,1);

xdebug_debug_zval('a');

//a: (refcount=1, is_ref=0)=array (0 => (refcount=0, is_ref=0)=0, 1 => (refcount=0, is_ref=0)=1)

//我使用的php版本是PHP7.0.12  xdebug版本是2.6.0
写回答

1回答

Jason

2018-03-25

因为range生成的数组,中间的元素并没有被其他变量引用,所以refcount是0,可以看下这个:http://php.net/manual/zh/features.gc.refcounting-basics.php

1
0

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

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

1817 学习 · 464 问题

查看课程