2012-03-07 4 views
4

У меня есть константа, называемая PREFIX, определенная в constants.php. В классе Foo я хотел бы создать статическую константу класса с PREFIX в качестве префикса. Но я получаю синтаксическую ошибку в этой строке определения const.Как создать постоянную переменную статического класса из другой постоянной переменной?

require_once 'constants.php'; 

class Foo { 
    const FOO_CONST = PREFIX . 'bar'; 

    public function __construct() { 
    } 
} 
+0

Вы не можете. Если вы не определяете другую константу и не используете ее в классе: 'define ('BAR_CONST', PREFIX. 'Bar');' и затем 'const FOO_CONST = BAR_CONST;' –

+0

Вы шутите? Глобальные переменные? Где? –

+0

'define' в основном имеет все проблемы глобальных переменных – JoJo

ответ

4

В PHP const должно быть значением, а не выражением. Так что const FOO_CONST = 'foo' . 'bar'; тоже не будет работать.

Вы должны использовать define или элемент класса, который инициализируется в конструкторе вместо const. Инициализация члена класса вне метода класса с выражением тоже не работает.

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