use*_*368 1 php reference pass-by-reference
我只是想通过尝试在php.net上找到的一些例子来理解PHP中的引用传递.我在php网站上找到了一个例子,但它不起作用:
function foo(&$var)
{
return $var++;
}
$a=5;
echo foo($a); // Am I not supposed to get 6 here? but I still get 5
Run Code Online (Sandbox Code Playgroud)
这是一个在这里找到的例子
任何人都能告诉我为什么变量$ a我得到5而不是6?
您的代码和示例代码不一样.难道他们表现得与众不同吗?
要查看您期望的行为,您必须更改$var++
为++$var
.
这里发生的是,虽然值$a
是在函数返回之后6,返回的值是5,因为的递增运算符(如何$var++
)的作品.您可以使用以下方法测试:
$a=5;
echo foo($a); // returns 5
echo $a; // but prints 6!
Run Code Online (Sandbox Code Playgroud)