Амперсанд (&) в PHP
Рассмотрим простой пример. Обратите внимание, что в вышеприведенном примере перед вторым аргументом стоит амперсанд (&
) - &$pos
. Это означает, что любые изменения значения переменной, передаваемой в функцию isWhat()
в качестве второго аргумента, будут доступны в других местах сценария.
PHP
function isWhat($val, &$pos) {
if (is_array($val))
{
$pos = true;
}
else
{
$pos = false;
}
}
Если вы передаете в функцию какую-либо переменную, то, как правило, переменная не меняет своего значения за пределами функции. Если, конечно, вы явно не присвоите возвращаемое значение исходной переменной. То есть по умолчанию, область видимости ограничена. Но если перед аргументом стоит амперсанда (&
), то область видимости меняется так, что любые изменения этого аргумента (переменной) будут видны за пределами функции. Амперсанд указывается только в определении функции. Вызов функции происходит обычным образом – без использования амперсанды. Данный метод называется передачей параметра по ссылке.
Комментарии к статье
Спасибо!
Взял себе на заметку.
Статья не полная, наверно надо было начинать что операция «амперсанд» — это операция взятия адреса...
ну вообще-то это не статья это сниппет