【发布时间】:2016-06-25 16:51:38
【问题描述】:
我阅读了一些关于 PHP 引用以及它们如何影响性能的文章。 我也看到了一些测试,证明是一样的。
这些资源中的大多数,声称其原因是因为引用禁用了写时复制。
但我不明白为什么会导致问题? PHP 不会复制数组,例如,仅仅因为您通过引用传递它。
function foo(&$var) {
$var->test = 'bar';
xdebug_debug_zval('var');
}
$data = new stdclass;
foo($data);
我收到的结果
(refcount=3, is_ref=1),
object(stdClass)[1]
public 'test' => (refcount=1, is_ref=0),string 'bar' (length=3)
这表明没有复制,并且该函数仍在使用相同的变量(处理实际变量而不是复制)。
我错过了什么,为什么会有性能损失?
【问题讨论】:
-
你能包含你用于测试的代码吗?否则这个问题可能会因为过于宽泛而被关闭。
-
感谢您的提示,我用简单的示例对其进行了更新。
标签: php performance php-5.5