在 PHP (>= 5.0) 中,通过引用传递速度更快吗?
2022-08-30 08:36:21
在 PHP 中,通过在函数声明中的参数前附加一个 & 符号,可以通过引用传递函数参数,如下所示:
function foo(&$bar)
{
// ...
}
现在,我知道这不是为了提高性能而设计的,而是允许函数更改通常超出其范围的变量。
相反,PHP似乎使用“写入时复制”来避免复制对象(可能还有数组),直到它们被更改。因此,对于不更改其参数的函数,效果应与通过引用传递它们时相同。
但是,我想知道“写入时复制”逻辑是否在按引用传递时可能短路,以及这是否会对性能产生任何影响。
ETA:可以肯定的是,我认为它并不快,而且我很清楚这不是参考的用途。所以我认为我自己的猜测非常好,我只是在寻找一个真正知道引擎盖下肯定发生了什么的人的答案。在 PHP 开发的五年中,我总是发现很难通过阅读源代码来获得有关 PHP 内部的高质量信息。