繁体   English   中英

通过引用返回PHP

[英]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

https://3v4l.org/uJHSF

所有代码段的评估(带有第二个函数调用):
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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM