Повернення посилання функціею

 

У результаті своєї роботи функція також може повертати посилання на будь-яку змінну. Це може стати в нагоді, якщо потрібно використовувати функцію для того, щоб визначити, якій змінній повинно бути присвоєно посилання. Щоб отримати з функції посилання, потрібно при оголошенні перед її ім'ям написати знак амперсанду (&) і щоразу при виклику функції перед її ім'ям теж писати амперсанд (&). Зазвичай функція повертає посилання на будь-яку глобальну змінну (або її частину - посилання на елемент глобального масиву), посилання на статичну змінну (або її частину) або посилання на один з аргументів, якщо він був також переданий по посиланню.

Приклад. Повернення посилання

<? 
$а = 3; $ b = 2; 
function & ref ($par) { 
global $a, $b; 
if ($par% 2 == 0) return $b; 
else return $a; 

$var = & ref (4); 
echo $var, "і", $b, "<br>"; 
// Виведе 2 і 2 
$b = 10; 
echo $ var, "і", $ b, "<br>"; 
// Виведе 10 і 10 ?> 
 

При використанні синтаксису посилань на змінну $var нашого прикладу не копіюється значення змінної $b повернутої функцією $ref, а створюється посилання на цю змінну. Тобто тепер змінні $var і $b ідентичні і будуть змінюватися одночасно.