[英]Return by reference PHP
在文档中,我看到了如何设置2 &
,为什么?
可以说我之间有什么区别
这个1
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = func();
echo "var1:", $var1; // 1
而这个2:
function func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = func();
echo "var1:", $var1; // 1
或替代变体
这个1
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
而这个2:
function func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
第一个this 2
和第二个this 1
之间只有一个区别。 其他所有错误地尝试return by reference
。
this 2
的第二this 2
甚至抛出PHP通知( Notice: Only variables should be assigned by reference in ... on line ...
)。
区别在于,第一个this 2
通过值返回,而第二个this 1
通过引用返回。 由于它是参考,因此可以在函数外部更改变量。
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
$var1 = 10;
$var1 = &func();
echo "\nvar1:", $var1; // 11
所有代码段的评估(带有第二个函数调用):
1st this 1: https : //3v4l.org/p6erT
1st this 2: https : //3v4l.org/9OcaC
这个2号1: https : //3v4l.org/uJHSF
2号2: https : //3v4l.org/qJ3qO
另请参见PHP手册: https : //secure.php.net/manual/zh/language.references.return.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.