PHP уже выполняет функцию копирования при записи, где он не создает новое значение, пока вы что-то не измените, поэтому при использовании ссылок не так много памяти сохраняется. Это может даже испортить некоторые вещи, которые PHP делает внутренне, чтобы уменьшить использование памяти, что делает вещи еще хуже.
Добавьте к этому тот факт, что ссылки делают вещи слишком волшебными в целом. По умолчанию и, следовательно, то, что большинство людей ожидают, это передача по значению; когда я перехожу $i
к функции, это очень усложняет задачу: нужно ли заботиться о том, таинственно ли эта функция меняется $i
на что-то другое, и, таким образом, делать защитные копии на всякий случай. (Он уже может измениться, $i
если значение является объектом, но, по моему мнению, не должен.)
В принципе, я бы только найти проход по ссылке полезной для «из» параметров, то есть переменный я ожидать , чтобы вернуться из функции , а не переходит в, а - ля preg_match
«ы &$matches
. Даже для функций, которые явно изменяют передаваемый объект, вроде sort
или array_pop
, это кажется немного странным ... но это то, с чем мы застряли.