Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
Назад Глава 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 и позднее.


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