Функция, возвращающая ссылки

Помимо передачи аргументов функции по ссылке имеется возможность вер­нуть ссылку как результат вызова функции. Это может быть необходимо при дальнейшем использовании ссылок в коде программы. Данная технология при­меняется достаточно редко и требует особой аккуратности. Ссылка указывает на то же место в памяти, которое занимает исходная переменная. Для создания ссылки используется оператор &:

code: #php
$value = 5;
$ref = &$value;

Теперь $ref является ссылкой на переменную $value. Изменение значения ссылки немедленно отражается на значении исходной переменной.

Для описания функции, которая возвращает ссылку как результат своего вы­зова, также используется символ &. Пусть требуется разработать простейшую функцию, которая просто возвращает ссылку на переданную ей в качестве аргу­мента переменную. Для этого аргумент тоже следует передавать по ссылке:

code: #php
function &return_a_reference(&$reference) {
  return $reference;
}

Следует обратить внимание на то, что символ & в описании функции исполь­зован дважды.

При вызове функции, возвращающей ссылку, следует также использовать оператор &. Ниже приведен пример, который присваивает переменной $ref ссылку на переменную $value и увеличивает значение ссылки, изменяя этим также и значение исходной переменной

code: #php
$value = 5;
echo "Старое значение:  ",  $value, "\n";
 
$ref = &return_a_reference($value);
$ref++;
 
echo "Новое значение:  ",  $value, "\n";

В результате выполнения этого фрагмента будут отображены следующие строки:

Старое значение: 5
Новое значение:  6
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: