'&' перед именем параметра
Просто быстрый и без сомнения простой вопрос. Я новичок в PHP и просматриваю существующий код. Я пытался найти ответ на свой вопрос в Google, но безуспешно.
Может кто-нибудь, пожалуйста, дайте мне знать, что означает знак '&' перед параметром $ var ??
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
Ответов (5)5
Это означает, что вы передаете переменную по ссылке http://ca3.php.net/language.references.pass . Просто это означает, что функция получает фактическую переменную, а не копию переменной. Любые изменения, внесенные вами в эту переменную в функции, будут отражены в вызывающей программе.
Это означает, что параметр передается по ссылке, а не по значению.
Это означает, что функция получает ссылку на исходное значение аргумента $var
, а не на копию значения.
Пример:
function add(&$num) { $num++; }
$number = 0;
add($number);
echo $number; // this outputs "1"
Если add()
бы в сигнатуре функции не было знака амперсанда, эхо-сигнал выдал бы «0», потому что исходное значение никогда не изменялось.