Константа PHP внутри IF

есть проблемы с константами в PHP, интересно, может ли кто-нибудь объяснить:

это работает

const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;

как это делает:

if (true) 
        define('_ROOT','d:/aphp/www');

echo "r="._ROOT;

но это дает ошибку: Ошибка анализа: синтаксическая ошибка, неожиданный T_CONST

if (true) 
    const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;

Я использую php 5.3.2


person Ray S.    schedule 17.02.2014    source источник


Ответы (1)


Это потому, что ..

Ключевое слово const должно быть объявлено в области верхнего уровня.

Из документации PHP

Примечание. В отличие от определения констант с помощью define (), константы, определенные с помощью ключевого слова const, должны быть объявлены в области верхнего уровня, поскольку они определяются во время компиляции. Это означает, что они не могут быть объявлены внутри функций, циклов или операторов if.

Source

person Shankar Narayana Damodaran    schedule 17.02.2014
comment
спасибо, это было скрыто в примечании здесь php.net/language.constants.syntax - person Ray S.; 17.02.2014