php引用计数疑问

我们可以使用 xdebug_debug_zval() 查看zval容器的两个信息refcount和is_ref。

<?php

$a = 123456789;

xdebug_debug_zval ('a');

echo 'PHP版本:' . PHP_VERSION;

?>

在页面中打印出:

a:
(refcount=0, is_ref=0)int 123456789
PHP版本:7.0.20

不对啊,怎么refcount = 0,记得文档上写的是赋值后就是1.我们在来段代码试试

<?php

$a = (string)123456789;

xdebug_debug_zval ('a');

echo 'PHP版本:' . PHP_VERSION;

?>

打印出结果:

a:
(refcount=1, is_ref=0)string '123456789' (length=9)
PHP版本:7.0.20

是不是必须是字符串。那我直接传入字符串试试

$a = "123456789";

结果还是refcount=0。奇了怪了。

我好奇refcount为什么等于0.

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题