为什么这个程序没有按预期工作?我读了一本PHP5书,写了下面的程序应该导致25
;我得到15
。
function numberPlus($number){
$number += 5;
return $number;
}
$oldNumber = 10;
$returnNumber = &numberPlus($oldNumber);
$oldNumber += 10;
echo $returnNumber;
答案 0 :(得分:0)
'因为您正在通过该功能打印返回的号码。这可能是你想要的:
function numberPlus(&$number){
$number += 5;
}
$oldNumber = 10;
numberPlus($oldNumber);
$oldNumber += 10;
echo $oldNumber; // 25
答案 1 :(得分:0)
PHP中的函数可以通过将&
添加到其名称中来返回引用:
function &function_name($params)
{
...
}
您还必须使用&
:
$var = &function_name(...);
但是,请注意,在函数结束后引用必须有效,否则它将不起作用。如果函数返回对其局部变量之一的引用,则该函数将在函数终止且$var
为null
时被销毁。
为了工作,这个函数必须返回全局变量,同一个对象的属性,以防它们是类的方法,或者参数也是引用。
在您的情况下,您必须执行以下操作:
function &numberPlus(&$number) // param is reference
{
$number += 5;
return $number;
}
$a = 10; // 10
$b = &numberPlus($a); // $a == $b == 15
$b += 10; // $a == $b == 25