'&安培;'在参数名称之前

时间:2009-02-28 16:05:18

标签: php parameters

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

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

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

5 个答案:

答案 0 :(得分:52)

通过引用传递它。

<强>咦吗 通过引用传递意味着您传递变量的地址而不是值。基本上你是在指向变量。

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

答案 1 :(得分:21)

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

示例:

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

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

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

答案 2 :(得分:3)

它表示parameter is passed by reference而不是值。

答案 3 :(得分:3)

这意味着您通过引用http://ca3.php.net/language.references.pass传递变量。简单来说,这意味着函数是获取实际变量而不是变量的副本。您在函数中对该变量所做的任何更改都将在调用者中进行镜像。

答案 4 :(得分:2)

&表示传递参考;该代码所做的是检查传递给函数的变量是否实际存在于全局范围中。如果没有&,它会首先尝试获取变量的副本,如果它不存在则会导致错误。