Учебник РНР
Назад Глава 14. Ссылки. Разъяснения. Вперёд

Передача по ссылке

Вы можете передать переменную в функцию по ссылке, и функция сможет модифицировать свои аргументы. Синтаксис таков:

function foo (&$var) { $var++; } $a=5; foo ($a); // $a здесь равно 6

Заметьте, что в функции отсутствует знак ссылки - он есть только в определении функции. Одного определения функции достаточно для корректной передачи аргументов по ссылке.

По ссылке можно передавать:

  • переменные, например, foo($a)

  • оператор new, например, foo(new foobar())

  • ссылку, возвращённую из функции, например:

    function &bar() { $a = 5; return $a; } foo(bar());

    См. также разъяснения возвращения по ссылке.

Любое другое выражение не должно передаваться по ссылке, так как результат не определён/undefined. Например, следующий передача по ссылке является неправильной:

function bar() // отсутствует & { $a = 5; return $a; } foo(bar()); foo($a = 5) // выражение, не переменная foo(5) // константа, не переменная

Это требования для PHP 4.0.4 и позднее.


Назад Оглавление Вперёд
Чем ссылки не являются Вверх Возвращение по ссылке