【发布时间】:2018-12-10 08:31:48
【问题描述】:
function A($a) {
xdebug_debug_zval('a');
}
$a = 1; # refcount->1
A($a); # refcount->2
评论是我认为引用计数应该是的。
但输出是:
a: (refcount=3, is_ref=0)=1
1 个额外的引用计数来自哪里?
【问题讨论】:
标签: php php-7 php-5.6 php-5.5 php-5.4
function A($a) {
xdebug_debug_zval('a');
}
$a = 1; # refcount->1
A($a); # refcount->2
评论是我认为引用计数应该是的。
但输出是:
a: (refcount=3, is_ref=0)=1
1 个额外的引用计数来自哪里?
【问题讨论】:
标签: php php-7 php-5.6 php-5.5 php-5.4
在 PHP 文档中描述,您必须通过引用传递参数。但是通过引用传递参数在 PHP 5.x 中被删除了。这个问题导致我们无法使用debug_zval_dump。用这个函数不可能得到正确的引用计数。
我想不推荐使用这个函数来计算引用。在我的测试环境(Apache / PHP7.1)中,您的示例产生的引用计数为 1。似乎有点棘手。
【讨论】: