Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php '&';在参数名之前_Php_Parameters - Fatal编程技术网

Php '&';在参数名之前

Php '&';在参数名之前,php,parameters,Php,Parameters,这只是一个简单的问题。我对PHP非常陌生,正在浏览一些现有代码。我试图在谷歌上找到我的问题的答案,但没有结果 有人能告诉我参数$var之前的“&”符号是什么吗 function setdefault(&$var, $default="") { if (! isset($var)) { $var = $default; } } 它表示通过引用传递,而不是通过值。通过引用传递 嗯? 通过引用传递意味着传递变量的地址而不是值。基本上你是在做一个指向变量的指针 &表示通过引

这只是一个简单的问题。我对PHP非常陌生,正在浏览一些现有代码。我试图在谷歌上找到我的问题的答案,但没有结果

有人能告诉我参数$var之前的“&”符号是什么吗

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”,因为原始值从未更改。

这意味着您正在通过引用传递变量。简单地说,这意味着函数获取的是实际变量,而不是变量的副本。在函数中对该变量所做的任何更改都将反映在调用方中