В PHP (> = 5.0) передача по ссылке быстрее?

В PHP параметры функции можно передать по ссылке, добавив амперсанд к параметру в объявлении функции, например:

function foo(&$bar)
{
    // ...
}

Теперь я знаю, что этоне предназначен для повышения производительности, но позволяет функциям изменять переменные, которые обычно находятся вне их области видимости.

Вместо этого PHP, кажется, использует Copy On Write, чтобы избежать копирования объектов (и, возможно, также массивов), пока они не будут изменены. Таким образом, для функций, которые не изменяют свои параметры, эффект должен быть таким же, как если бы вы передали их по ссылке.

Однако мне было интересно, если логика «Копировать при записи» может быть короткозамкнута при передаче по ссылке, и влияет ли это на производительность.

ETA: Конечно, я предполагаю, что этоне быстрее, и я хорошо понимаю, что это не то, для чего нужны ссылки. Так что я думаю, что мои собственные догадки довольно хороши, яЯ просто ищу ответ от кого-то, кто действительно знает, чтоопределенно происходит под капотом. За пять лет разработки PHP яМне всегда было трудно получить качественную информацию о внутренностях PHP, не читая источник.

Ответы на вопрос(9)

Ваш ответ на вопрос