Что ссылки собой не представляют

Как говорилось в предыдущих разделах, ссылки — не указатели. Следующая конструкция не будет делать то, что ожидается:

<?php

function foo(&$var)
{
$var =& $GLOBALS["baz"];
}

foo($bar);

?>

Пример выполняет следующее: в функции foo переменная $var связывается с переменной $bar, которую PHP создал в месте вызова, но затем повторно связывается с переменной $GLOBALS["baz"]. Через механизм ссылок невозможно связать переменную $bar с другим значением в области видимости вызова, поскольку у функции foo нет доступа к переменной $bar, которую представляет только переменная $var, которой доступно только содержимое переменной $bar, но недоступна связка имя-значение, которую хранит таблица символов области видимости вызова. Привязать внешнюю переменную к другому значению помогает механизм возврата ссылок, который связывает ссылки с переменными, которые выбрала функция.