有两个问题:
第一个:
$str = "test zval";
xdebug_debug_zval('str');
如上,当php创建一个字符串时,通过xdebug_debug_zval查看的结果是:
str: (refcount=1, is_ref=0)='test zval'
于是,我理所当然的觉得,当php创建一个整型变量时,通过xdebug_debug_zval查看的结果也应该是: (refcount=1, is_ref=0)
但实际情况是:
$a = 123;
xdebug_debug_zval('a');
输出为:
a: (refcount=0, is_ref=0)=123
我们知道refcount是一个计数器,用来保存有多少个变量指向该zval,但为什么当创建整型变量时,refcount为0呢?
我的php版本为7.0,难道是php版本的问题吗?
第二个:
$ar = array(
'id' => 38,
'name' => 'shine'
);
xdebug_debug_zval('ar');
输出为:
ar: (refcount=1, is_ref=0)=array ('id' => (refcount=0, is_ref=0)=38, 'name' => (refcount=2, is_ref=0)='shine')
奇怪为什么会有两个变量指向$ar['name']呢?
请大神解答一下,谢谢!