PHP全局数组未显示

PHP全局数组未显示,php,html,global-variables,global,Php,Html,Global Variables,Global,考虑以下用字符串填充数组的函数(问题): global$问题; 函数打印问题($行){ $count=1; foreach($line作为$line_num=>$line的行){ 如果($line_num%3==1){ 回显“问题”。$count.:“”。“”; $count++; $questions[]=$line; } } } 问题数组定义为全局数组,但在函数外部无法访问。位于页面底部的以下代码块不返回任何内容: <?php if(isset($_POST['Submit'

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

global$问题;
函数打印问题($行){
$count=1;
foreach($line作为$line_num=>$line的行){
如果($line_num%3==1){
回显“问题”。$count.:“
”。“
”; $count++; $questions[]=$line; } } }
问题数组定义为全局数组,但在函数外部无法访问。位于页面底部的以下代码块不返回任何内容:

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


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

您应该在函数中移动
global

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

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

您可以在PHP中将全局变量用作$GLOBALS[“foo”]因此,在函数内部,用$GLOBALS[“questions”]替换$questions,一切都应该正常。

不建议使用global,您可以将值传递给函数,就像传递$line一样
function printQuestions($lines){
    global $questions;
    // ...