所以我试图学习如何通过函数传递数组,这样我就可以解决PHP无法返回多个值的问题.到目前为止还没有能够得到任何工作,但这是我最好的尝试.有谁可以指出我哪里出错了?
function foo($array)
{
$array[3]=$array[0]+$array[1]+$array[2];
return $array;
}
$waffles[0]=1;
$waffles[1]=2;
$waffles[2]=3;
foo($waffles);
echo $waffles[3];
Run Code Online (Sandbox Code Playgroud)
为了澄清:我希望能够将多个变量传递给函数,执行某些操作,然后将多个变量返回,同时保持它们分离.这只是一个例子,我试图将其作为无法从数组中返回多个变量的解决方案
Soa*_*Box 34
你似乎在寻找传递引用,这样做会使你的函数看起来像这样(注意&符号):
function foo(&$array)
{
$array[3]=$array[0]+$array[1]+$array[2];
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以将函数的返回值赋给变量:
function foo($array)
{
$array[3]=$array[0]+$array[1]+$array[2];
return $array;
}
$waffles = foo($waffles)
Run Code Online (Sandbox Code Playgroud)
Tor*_*amo 10
您正在通过复制将数组传递给函数.只有对象在PHP中通过引用传递,并且数组不是对象.这是你做的(注意&)
function foo(&$arr) { # note the &
$arr[3] = $arr[0]+$arr[1]+$arr[2];
}
$waffles = array(1,2,3);
foo($waffles);
echo $waffles[3]; # prints 6
Run Code Online (Sandbox Code Playgroud)
除此之外,我不确定你为什么会那样做那种特殊的操作.为什么不返回总和而不是将其分配给新的数组元素?