在 PHP 中,函数参数可以通过引用传递,方法是在函数声明中的参数前加一个与号,如下所示:
function foo(&$bar)
{
// ...
}
现在,我知道这是 没有的设计目的是提高性能,但是允许函数更改通常超出其作用域的变量。
相反,PHP 似乎使用“写时复制”来避免复制对象(可能也包括数组) ,直到它们被更改。因此,对于不更改其参数的函数,其效果应该与通过引用传递它们的效果相同。
但是,我想知道在写时复制逻辑是否可能在引用传递时短路,以及这是否会对性能产生影响。
埃塔: 可以肯定的是,我认为它不会更快,而且我很清楚这不是参考资料的用途。所以我认为我自己的猜测是相当不错的,我只是在寻找一个真正知道在引擎盖下发生了什么的人的答案。在 PHP 开发的五年中,我总是发现很难通过阅读源代码获得关于 PHP 内部的高质量信息。