Открыть меню    

Амперсанд (&) в PHP

Рассмотрим простой пример. Обратите внимание, что в вышеприведенном примере перед вторым аргументом стоит амперсанд (&) - &$pos. Это означает, что любые изменения значения переменной, передаваемой в функцию isWhat() в качестве второго аргумента, будут доступны в других местах сценария.

PHP

function isWhat($val, &$pos) {
  if (is_array($val))
    {
      $pos = true;
    }
  else
    {
      $pos = false;
    }
  }

Если вы передаете в функцию какую-либо переменную, то, как правило, переменная не меняет своего значения за пределами функции. Если, конечно, вы явно не присвоите возвращаемое значение исходной переменной. То есть по умолчанию, область видимости ограничена. Но если перед аргументом стоит амперсанда (&), то область видимости меняется так, что любые изменения этого аргумента (переменной) будут видны за пределами функции. Амперсанд указывается только в определении функции. Вызов функции происходит обычным образом – без использования амперсанды. Данный метод называется передачей параметра по ссылке.

Комментарии к статье

аватарка пользователя
2013-04-19

Спасибо!
Взял себе на заметку.

аватарка пользователя
2013-10-14
darl

Статья не полная, наверно надо было начинать что операция «амперсанд» — это операция взятия адреса...

аватарка пользователя
2013-10-14
dnzl

ну вообще-то это не статья это сниппет

Добавить комментарий к сниппету