Функция, возвращающая ссылки
Помимо передачи аргументов функции по ссылке имеется возможность вернуть ссылку как результат вызова функции. Это может быть необходимо при дальнейшем использовании ссылок в коде программы. Данная технология применяется достаточно редко и требует особой аккуратности. Ссылка указывает на то же место в памяти, которое занимает исходная переменная. Для создания ссылки используется оператор &:
$value = 5; $ref = &$value;
Теперь $ref является ссылкой на переменную $value. Изменение значения ссылки немедленно отражается на значении исходной переменной.
Для описания функции, которая возвращает ссылку как результат своего вызова, также используется символ &. Пусть требуется разработать простейшую функцию, которая просто возвращает ссылку на переданную ей в качестве аргумента переменную. Для этого аргумент тоже следует передавать по ссылке:
function &return_a_reference(&$reference) { return $reference; }
Следует обратить внимание на то, что символ & в описании функции использован дважды.
При вызове функции, возвращающей ссылку, следует также использовать оператор &. Ниже приведен пример, который присваивает переменной $ref ссылку на переменную $value и увеличивает значение ссылки, изменяя этим также и значение исходной переменной
$value = 5; echo "Старое значение: ", $value, "\n"; $ref = &return_a_reference($value); $ref++; echo "Новое значение: ", $value, "\n";
В результате выполнения этого фрагмента будут отображены следующие строки:
Старое значение: 5 Новое значение: 6
Автор: Стивен Хольцнер. Переводчик: С. Банников