2013-08-27 5 views
0

У меня есть PHP файл tableinfo.php с этим кодом ->Глобальная переменная не работает 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 имеет класс с именем соединения, которое, в функции использует $ 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'); 
}); 

Теперь у меня есть две страницы, корень/JS/managers.php и корень/JS/ldap.php, на managers.php все работает отлично, но на ldap.php он дает эту ошибку ->

Примечание: Undefined индекс: table_info в

C: \ XAMPP \ HTDOCS \ AVRS \ HTDOCS \ контроллеры \ connection.php на линии 76

Я не могу понять, что я делаю неправильно. Пожалуйста, предложите. Заранее спасибо.

ответ

0

Ну, ваша фактическая ошибка (Примечание: Неопределенный индекс: table_info) означает, что он ищет массив с индексом, называемым table_info, и возвращает NULL (вы должны использовать isset() для чего-то подобного).

В принципе, массив $ table_info не устанавливается в tableinfo.php, как вы думаете. Поэтому убедитесь, что вы включили его правильно (с правильными дорожками) и идите оттуда. Трудно сказать, если вы не сможете реально посмотреть на свой код.

Смежные вопросы