Возвращение по ссылке
Возвращение по ссылке используется в тех случаях, когда вы хотите
использовать функцию для выбора переменной, с которой должна быть связана
данная ссылка. Не используйте возврат по ссылке
для увеличения производительности. Ядро PHP само занимается оптимизацией.
Применяйте возврат по ссылке только имея технические причины на это.
При возвращении по ссылке используйте такой синтаксис:
В этом примере устанавливается свойство объекта, возвращённого функцией
getValue, а не его копии, как было бы без использования
ссылок.
Замечание:
В отличие от передачи параметров по ссылке, &
здесь нужно использовать в обоих местах - для указания на то, что вы
возвращаете ссылку, а не копию, как обычно, и для указания того, что
происходит связывание по ссылке, а не обычное присвоение
для $myValue.
Замечание:
Если вы возвращаете ссылку из функции используя следующий синтаксис:
return ($this->value);, это не
будет работать, так как вы возвращаете по ссылке результат
выражения, а не переменную. По ссылке можно
возвращать только переменные и ничего больше. Начиная с PHP 4.4.0 и PHP 5.1.0,
если код пытается вернуть по ссылке динамическое выражение или результат оператора
new, будет выброшено предупреждение E_NOTICE.
Для использования возвращаемой ссылки вы должны применять присвоение по ссылке:
Для передачи возвращаемой ссылки в другую функцию, принимающую ссылку, вы можете
использовать следующий синтаксис:
Замечание:
Заметим, что array_push(&collector(), 'foo');
не сработает, а приведет к неисправимой ошибке.