快速而毫无疑问的简单问题。我是PHP的新手,正在浏览一些现有的代码。我试图在谷歌上找到我的问题的答案,但无济于事。
有人可以让我知道'&'是什么参数$ var之前的符号确实??
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
答案 0 :(得分:52)
答案 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)
&
表示传递参考;该代码所做的是检查传递给函数的变量是否实际存在于全局范围中。如果没有&
,它会首先尝试获取变量的副本,如果它不存在则会导致错误。