为什么在类常量中指定一个定义的常量会引发错误?

时间:2009-03-04 05:56:27

标签: php

以下是我的代码的一部分

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

 class Questions
    {


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

似乎当我将define()'d常量从我的类常量声明中取出时,它运行正常。但是当我添加它时会抛出这个错误:

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

那么如何让define()'d在那里保持不变?我认为它没有正确地查找DIR_APP,认为它可能已在类中定义。如何让它在全球范围内解决?

谢谢

2 个答案:

答案 0 :(得分:4)

无法完成。

引自http://www.php.net/manual/en/language.oop5.constants.php

  

“该值必须是常量   表达,而不是(例如)a   变量,类成员,结果   数学运算或函数   称之为“

我想你可以

  

define('QUESTIONS_FILE',DIR_APP。   'questions.xml');

但这是全球性的。

答案 1 :(得分:0)

之前从未尝试过。 Zend Studio现在给我一个问题,让我自己看一下。虽然尝试这个怎么样......

const QUESTIONS_FILE = constant("DIR_APP") . 'questions.xml';