0

我对使用带变量的全局命令时php如何衡量范围有疑问。我在我的 php 代码的同一范围内有两个函数。在 loopitback 中,全局命令按预期工作。在 loopitback_two 中,全局命令不会获取 $global_arr。我确实使用会话变量进行了测试,它工作正常。

在我看来,这两个功能是相同的,所以我找一个更有智慧的人。

感谢您抽出时间来阅读。

编辑:添加更多代码

$global_arr = array(array());

function save_the_arr($sql_row1)
{
    global $global_arr;

    POPULATED ARRAY

    $_SESSION['queue']=$global_arr;
}

function loopitback($max)
{
    global $global_arr;

    $i = 0;
    while($i<$max)
    {
        echo "<tr><td>" . $global_arr[$i][0] . "</td></tr>";
        $i = $i+1;
        if($global_arr[$i][0]==NULL OR $global_arr[$i][0]=="")
            $i=$max;
    }
}

function loopitback_two($max)
{
    global $global_arr;

    $i = 0;
    while($i<$max)
    {
        echo "<tr><td>" . $global_arr[$i][0] . "</td></tr>";
        $i = $i+1;
        if($global_arr[$i][0]==NULL OR $global_arr[$i][0]=="")
            $i=$max;
    }
}
4

1 回答 1

0

你需要在你的 .Because 初始化全局变量construct。因为即使你将它定义为 GLOBAL,它的实例也只能在那个函数中。如果你没有提到它,它将在下一个函数中重新定义construct

function __construct() {
    global $global_arr;
}
function loopitback() {
    //Do something with it
}
function loopitback_two() {
    //Do something with it
}

编辑:如果您进行编辑,请在初始化时$global_arr定义global variable..

global $global_arr = array();

function save_the_arr($sql_row1) {

}

如果您需要更多信息,请参阅此内容。

于 2013-08-13T05:17:02.573 回答