Php '&';在参数名之前
这只是一个简单的问题。我对PHP非常陌生,正在浏览一些现有代码。我试图在谷歌上找到我的问题的答案,但没有结果 有人能告诉我参数$var之前的“&”符号是什么吗Php '&';在参数名之前,php,parameters,Php,Parameters,这只是一个简单的问题。我对PHP非常陌生,正在浏览一些现有代码。我试图在谷歌上找到我的问题的答案,但没有结果 有人能告诉我参数$var之前的“&”符号是什么吗 function setdefault(&$var, $default="") { if (! isset($var)) { $var = $default; } } 它表示通过引用传递,而不是通过值。通过引用传递 嗯? 通过引用传递意味着传递变量的地址而不是值。基本上你是在做一个指向变量的指针 &表示通过引
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
它表示通过引用传递,而不是通过值。通过引用传递 嗯? 通过引用传递意味着传递变量的地址而不是值。基本上你是在做一个指向变量的指针
&
表示通过引用传递;该代码所做的是检查传递给函数的变量是否实际存在于全局范围中。如果没有&
,它将首先尝试获取变量的副本,如果变量不存在,则会导致错误。这意味着函数获取对参数$var
原始值的引用,而不是值的副本
例如:
function add(&$num) { $num++; }
$number = 0;
add($number);
echo $number; // this outputs "1"
如果
add()
函数签名中没有符号,则echo将输出“0”,因为原始值从未更改。这意味着您正在通过引用传递变量。简单地说,这意味着函数获取的是实际变量,而不是变量的副本。在函数中对该变量所做的任何更改都将反映在调用方中