Skip to content

Latest commit

 

History

History
37 lines (36 loc) · 2.63 KB

4.10_funkciya-vozvrashchayushchaya-ssylki.md

File metadata and controls

37 lines (36 loc) · 2.63 KB

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

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

$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
Новое значение: б