Мой код не читает определенные константы в PHP - PullRequest
0 голосов
/ 14 января 2011

Привет всем У меня есть проект, работающий на PHP, который разделен на раздел администратора и раздел клиента.

Клиентский экд работает отлично. Но я не могу получить доступ к своему разделу администратора, и он отображает сообщение об ошибке

Неустранимая ошибка: класс ClsBase не найден в E: \ wamp \ www \ dfms \ admin \ index.php в строке 30

UPDATE

строка 28 - $base_obj = new ClsBase();

Update1

ЛИНИЯ 14: include_once (ADMIN_CLASS_DIR. "ClsAdminUser.php");

Но я определил все константы в моем adminconfig.php И я использую Константу, чтобы указать путь к этому файлу, а также этот файл присутствует в требуемой папке

Не могли бы вы мне помочь? В чем может быть проблема?

Ответы [ 3 ]

2 голосов
/ 14 января 2011

Трудно сказать, не видя код. Есть две возможные проблемы.

  1. ADMIN_CLASS_DIR не установлено, поэтому PHP выдаст notice и по умолчанию ADMIN_CLASS_DIR. Ваш код будет выглядеть так:

     include_once(ADMIN_CLASS_DIR . 'ClsAdminUser.php');
    

    Чтобы исправить это, просто определите каталог:

     if (!defined('ADMIN_CLASS_DIR')) {
         define('ADMIN_CLASS_DIR', 'path/to/dir');
     }
    
  2. Вы пытаетесь использовать его внутри строкового литерала:

    include_once('ADMIN_CLASS_DIR/ClsAdminUser.php');
    

    Константы в PHP не работают так. Они разрешаются только вне строки. Так что вы можете сделать либо:

    include_once(ADMIN_CLASS_DIR . '/ClsAdminUser.php');
    

    Или вы можете сделать это, если вам нужно определить константу в виде строки:

    include_once(constant('ADMIN_CLASS_USER') . '/ClsAdminUser.php');
    

Чтобы определить, определена ли константа, используйте функцию defined. Он вернет true, если константа определена.

Если вам нужна лучшая помощь, отправьте код!

1 голос
/ 14 января 2011

Похоже, вы не определили константу до того, как добрались до кодового блока, который ее использует.

Вы должны получить уведомление, хотя:

Notice:  Use of undefined constant ADMIN_CLASS_DIR - assumed 'ADMIN_CLASS_DIR'

Это говорит о том, что PHP приметэто строка.И обрабатывает это следующим образом.

Отказ от ответственности / Оффтоп:

PHP действительно имеет некоторые странные проблемы

1 голос
/ 14 января 2011

Похоже, вы ожидаете, что константа ADMIN_CLASS_DIR будет установлена, когда это не такPHP выдаст уведомление и затем предположит, что константа является строковым литералом.Где вы определяете эту константу?Вам нужно включить этот код в ваш скрипт.

...