0

このコードを含む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 は必要なフィールド名を持つ別の変数です。

このようにconnection.phpを自動ロードします->

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

現在、root/js/managers.php と root/js/ldap.php の 2 つのページがあり、managers.php ではすべて正常に動作しますが、ldap.php ではこのエラーが発生します ->

Notice: 未定義のインデックス: table_info 内

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

何が間違っているのかわかりません。提案してください。前もって感謝します。

4

1 に答える 1

0

実際のエラー (Notice: Undefined index: table_info) は、table_info というインデックスを持つ配列を探していて、NULL が返されていることを意味します (そのようなものには isset() を使用する必要があります)。

基本的に、 $table_info 配列は、あなたが思っているように tableinfo.php に設定されていません。そのため、(正しいパスで) 正しくインクルードしたことを確認し、そこから移動してください。コードを実際に見ることができない限り、それを判断するのは困難です。

于 2013-08-27T20:52:43.770 に答える