参数名称前的“&”

2022-08-30 15:49:03

只是一个快速且无疑简单的问题。我对PHP很陌生,正在研究一些现有的代码。我试图在谷歌上找到我问题的答案,但无济于事。

有人可以让我知道参数$var之前的“&”符号是什么吗?

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

答案 1

通过引用传递它。

哼?通过引用传递意味着传递变量的地址而不是值。基本上,您正在创建指向变量的指针。

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


答案 2

这意味着该函数获取对参数的原始值的引用,而不是该值的副本。$var

例:

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

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

如果函数签名中没有 & 符号,则回声将输出“0”,因为原始值从未更改过。add()


推荐