PHP全局数组没有显示

时间:2012-02-14 19:45:21

标签: php html global-variables global

考虑以下用字符串(问题)填充数组的函数:

global $questions;
function printQuestions($lines){
    $count = 1;
    foreach ($lines as $line_num => $line) {
        if($line_num%3 == 1){
            echo 'Question '.$count.':'.'<br/>'.'<input type="text" value="' . $line . '" class="tcs"/>'.'<br/>';
            $count++;
            $questions[] = $line;
        }
    }
}

问题数组被定义为全局但在函数外部无法访问。位于页面底部的以下代码块不返回任何内容:

<?php
    if(isset($_POST['Submit'])){
        foreach($questions as $qs)
            echo $qs;   
        }
?>

我知道我可以使用会话变量,但我对这个关于全局变量的特殊问题感兴趣。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

您应该在功能中移动global

function printQuestions($lines){
    global $questions;
    // ...

global关键字将全局变量带入本地范围,因此您可以对其进行操作。如果您未在global函数中使用printQuestions()将全局$questions变量置于函数范围内,则$questions将是本地的,并且将是不同的变量比您正在寻找的全局变量。

答案 1 :(得分:1)

你可以在PHP中使用全局变量$ GLOBALS [“foo”]所以在你的情况下,在函数中用$ GLOBALS [“questions”]替换$ questions,一切都应该有效。