参数名称前面的'&'

Tra*_*ray 21 php parameters

这是一个快速而毫无疑问的简单问题.我是PHP的新手,正在浏览一些现有的代码.我试图在谷歌上找到我的问题的答案,但无济于事.

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

function setdefault(&$var, $default="")
{
  if (! isset($var))
  {
    $var = $default;
  }
}
Run Code Online (Sandbox Code Playgroud)

Ava*_*ava 55

通过引用传递它.

咦? 通过引用传递意味着您传递变量的地址而不是值.基本上你是在做一个指向变量的指针.

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

  • +1对于**嗯?**,让我轻笑 (12认同)

Hen*_*aul 24

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

例:

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

$number = 0;
add($number);
echo $number; // this outputs "1"
Run Code Online (Sandbox Code Playgroud)

如果add()函数签名中没有&符号,则echo将输出"0",因为原始值从未更改过.