PHP:通过引用传递参数不起作用

时间:2013-11-19 20:51:38

标签: php function variables reference

我正在创建一个通过引用传递参数的函数。我只是无法使用此代码获得返回值,我需要您的帮助。

function wow ($id, &$a, &$b)
    {
        $detail[0][0] = 1;
        $detail[0][1] = 2;
        $detail[0][2] = 3;
        $detail[0][3] = 4;

        $detail[1][0] = -1;
        $detail[1][1] = -2;
        $detail[1][2] = -3;
        $detail[1][3] = -4;

        for($i=0; $i<=$id; $i++)
        if ($detail[$i][3] == 4)
        {
            $a = $detail[$i][0];
            $a = $detail[$i][1];
            $a = $detail[$i][2];
            $a = $detail[$i][3];
        }
        else
        {
            $b = $detail[$i][0];
            $b = $detail[$i][1];
            $b = $detail[$i][2];
            $b = $detail[$i][3];
        }

    }

这是我调用函数的方式。

$a = $b = null;
    wow(1, $a, $b);
    echo $a[0]." ".$a[1]." ".$a[2]." ".$a[3]." ".$a[4]." ".$b[0]." ".$b[1]." ".$b[2]." ".$b[3]." ".$b[4]." ";

1 个答案:

答案 0 :(得分:0)

我认为你错过了数组如何工作:

    for($i=0; $i<=$id; $i++)
    if ($detail[$i][3] == 4)
    {
        $a = $detail[$i][0];
        $a = $detail[$i][1];
        $a = $detail[$i][2];
        $a = $detail[$i][3];
    }

这些状态网中的每一个都覆盖了前一个状态网。

尝试这样的事情:

    for($i=0; $i<=$id; $i++)
    if ($detail[$i][3] == 4)
    {
        $a = $detail[$i];
    }

那就是你要把第一个内的整个数组复制到$a

此外,您将$a$b都设置为null,但只在函数中设置了一个或另一个 - 您将始终返回至少一个警告,告诉您正在尝试的空变量回声。