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