Почему указание определенной константы внутри константы класса вызывает ошибку? - PullRequest
0 голосов
/ 04 марта 2009

Вот часть моего кода

define('DIR_APP', 'app/');

 class Questions
    {


        const QUESTIONS_FILE = DIR_APP . 'questions.xml';
    }

Кажется, когда я беру константу define() из моего объявления константы класса, она работает нормально. Но когда я добавляю его, он выдает эту ошибку:

Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/public_html/app/classes/Questions.class.php on line 7

Так, как я могу получить мою define() постоянную там? Я предполагаю, что это не правильно ищет DIR_APP, думая, что это может быть определено в классе. Как мне получить это, чтобы решить это глобально?

Спасибо

Ответы [ 2 ]

4 голосов
/ 04 марта 2009

Это невозможно сделать.

Цитата из http://www.php.net/manual/en/language.oop5.constants.php:

"Значение должно быть постоянным выражение, а не (например) переменная, член класса, результат математическая операция или функция называют "

Я думаю, вы могли бы

define ('QUESTIONS_FILE', DIR_APP. 'Questions.xml');

но это глобально.

0 голосов
/ 04 марта 2009

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

const QUESTIONS_FILE = constant("DIR_APP") . 'questions.xml';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...