【发布时间】:2019-11-12 00:08:03
【问题描述】:
我正在转储一个在 PHP 7.3.5 版上运行的 zval 容器(opcache 已激活,并且 PHP 已启用线程安全),遵循以下给定代码:
<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
根据 php.net documentation Example #3 增加 zval 的 refcount 它输出 refcount=2 :
a: (refcount=2, is_ref=0)='new string'
在我的设置 (php7.3.5) 中,它输出 refcount=1 :
a:
(refcount=1, is_ref=0)string 'new string' (length=10)
我实际上使用 PHP5.6 达到了与 php.net 文档相同的输出。 PHP7 内部发生了什么变化,为什么 refcount 保持为 1?
【问题讨论】:
-
字符串已被保留,因此不使用引用计数。
标签: php php-internals