Подтвердить что ты не робот

'&' перед именем параметра

Просто быстрый и, без сомнения, простой вопрос. Я новичок в PHP и просматриваю какой-то существующий код. Я попытался найти ответ на свой вопрос в Google, но безрезультатно.

Может кто-нибудь, пожалуйста, дайте мне знать, что такое '&' знак перед параметром $var does??

function setdefault(&$var, $default="")
{
  if (! isset($var))
  {
    $var = $default;
  }
}
4b9b3361

Ответ 1

Пропускает его по ссылке.

А? Передача по ссылке означает, что вы передаете адрес переменной вместо значения. В основном вы делаете указатель на переменную.

http://us.php.net/language.references.pass

Ответ 2

Это означает, что функция получает ссылку на исходное значение аргумента $var вместо копии значения.

Пример:

function add(&$num) { $num++; }

$number = 0;
add($number);
echo $number; // this outputs "1"

Если add() не будет иметь знак амперсанда в сигнатуре функции, эхо выводит "0", потому что исходное значение никогда не менялось.

Ответ 4

Это означает, что вы передаете переменную по ссылке http://ca3.php.net/language.references.pass. Просто это означает, что функция получает фактическую переменную, а не копию переменной. Любые изменения, внесенные в эту переменную в функции, будут отражаться в вызывающем абоненте.

Ответ 5

& означает pass-by-reference; что этот код делает, проверяет, действительно ли переменная, переданная функции, в глобальной области. Без & он попытается сначала взять копию переменной, которая вызывает ошибку, если она не существует.