只是一个快速和毫无疑问容易的问题。我对PHP很陌生,正在浏览一些现有的代码。我试图找到在谷歌我的问题的答案,但无济于事。'&'参数名称前
有人请让我知道'&'符号在参数$ var之前吗?
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
只是一个快速和毫无疑问容易的问题。我对PHP很陌生,正在浏览一些现有的代码。我试图找到在谷歌我的问题的答案,但无济于事。'&'参数名称前
有人请让我知道'&'符号在参数$ var之前吗?
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
这表明parameter is passed by reference而不是价值。
&
装置通过按引用;该代码做的是检查传递给该函数的变量是否实际存在于全局范围内。如果没有&
它会尝试首先获取变量的副本,如果该变量不存在,将导致错误。
这意味着函数获取参数$var
的原始值的引用,而不是该值的副本。
例子:
function add(&$num) { $num++; }
$number = 0;
add($number);
echo $number; // this outputs "1"
如果add()
不会在函数签名的符号,标志,回声会输出“0”,因为原来的值没有改变。
这意味着您通过引用http://ca3.php.net/language.references.pass传递变量。简单地说,这意味着函数获取实际变量而不是变量的副本。您在该函数中对该变量所做的任何更改都将在调用方中进行镜像。
+1对于** Huh **,让我笑了 – 2014-03-13 12:45:08