在PHP中,函数参数可以通过引用传递,方法是在函数声明中的参数前面加一个符号AND,如下所示:
function foo(&$bar)
{
// ...
}
现在,我知道这不是为了提高性能,而是为了允许函数更改通常超出其范围的变量.
取而代之的是,PHP似乎使用写入时复制来避免复制对象(可能还有数组),直到它们被更改.因此,对于不更改参数的函数,其效果应该与您通过引用传递它们的效果相同.
但是,我想知道写入时拷贝逻辑是否会在按引用传递时短路,以及这是否会对性能产生任何影响.
ETA:可以肯定的是,我假设它不会更快,而且我很清楚这不是引用的目的.所以我认为我自己的猜测是相当准确的,我只是在寻找一个真正了解幕后正在发生的事情的人的答案.在五年的PHP开发中,我总是发现,除了阅读源代码之外,很难获得有关PHP内部的高质量信息.