全局变量不工作php


Global Variable not working php

我有一个php文件tableinfo.php,其中包含以下代码->

<?php
$table_info = array(
    array(
        'table_name' => 'managers',
        'n_cols' => '4',
        'col_info' => array(
            'Name' => 's',
            'ldap' => 's',
            'avrsid' => 'i',
            'bu' => 's'
        ),
    )
);
?>

我已经将此文件包含在另一个文件/controllers/connection.php中,如下所示->

include $_SERVER['DOCUMENT_ROOT'] . '/controllers/tableinfo.php';

connection.php有一个名为connection的类,它在函数中使用$GLOBALS从tableinfo.php访问数组,如下所示->

$types .= $GLOBALS['table_info'][0]['col_info'][$filters[self::filters][$i][self::field]];

其中$types是一个字符串,$filters是另一个具有我想要的字段名的变量。

我像这样自动加载连接.php->

spl_autoload_register(function ($class) {
    require_once($_SERVER['DOCUMENT_ROOT'] . '/controllers/' . $class . '.php');
});

现在,我有两个页面,root/js/managers.php和root/js/ldap.php,在managers.php上,一切都很好,但在ldap.php上,它给出了这个错误->

注意:未定义的索引:中的table_info

C: ''avrs''htdocs''controllers''connection.php,位于第76行

我不知道我做错了什么。请提出建议。提前谢谢。

好吧,您的实际错误(注意:未定义的索引:table_info)意味着它在寻找一个索引为table_info的数组,但它得到了一个NULL(应该使用isset()来完成类似的操作)。

基本上,$table_info数组并没有像你想象的那样在tableinfo.php中设置。因此,请确保你正确地包含了它(使用正确的路径),然后从那里开始。除非能够真正查看您的代码,否则很难判断。