全局变量不工作的PHP

时间:2013-08-27 20:47:43

标签: php global-variables

我有一个带有此代码的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中,如下所示 - &gt;

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

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

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

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

我像这样自动加载connection.php - &gt;

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

现在,我在managers.php上有两个页面,root / js / managers.php和root / js / ldap.php,一切正常,但是在ldap.php上它给出了这个错误 - &gt;

  

注意:未定义索引:

中的table_info      第76行的

C:\ xampp \ htdocs \ avrs \ htdocs \ controllers \ connection.php

我无法弄清楚我做错了什么。请建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,你的实际错误(注意:未定义的索引:table_info)意味着它正在寻找一个带有一个名为table_info的索引的数组,并且它返回一个NULL(你应该使用isset()这样的东西)。

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