我有一个关于php如何在使用带变量的global命令时测量范围的问题。 我在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;
}
}
答案 0 :(得分:0)
你需要在你的construct
初始化全局变量。因为即使你把它定义为GLOBAL,它的实例也仅在那个函数中。如果你没有在{{{{}}中提及它,它将在下一个函数中重新定义它。 1}}喜欢
construct
编辑:如果您进行了修改,请在初始化时将function __construct() {
global $global_arr;
}
function loopitback() {
//Do something with it
}
function loopitback_two() {
//Do something with it
}
定义为$global_arr
..
global variable
如果您需要更多信息,请参阅THIS。