Руководство по PHP
Пред. | Глава 21. Ссылки. Разъяснения | След.

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

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

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

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

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

- Переменные, например `foo($a)`

- Оператор new, например `foo(new foobar())`

- Ссылки, возвращаемые функцией, например:

  `<?php function &bar() { $a = 5; return $a; } foo(bar()); ?>`

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

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

`<?php function bar() // Операция & отсутствует { $a = 5; return $a; } foo(bar()); foo($a = 5); // Выражение, а не переменная foo(5); // Константа, а не переменная ?>`

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

Пред. | Начало | След.
Чем ссылки не являются | Уровень выше | Возвращение по ссылке