inside php: const и условия в коде, какое поведение?

iamFake

Mind Of Liberty
Доброго времени суток.

Есть константа

PHP:
const DEBUG = false;
она "создается" на этапе компиляции и есть условие

PHP:
if(DEBUG) {
    echo_debug();
}
что произойдет с этим кодом во время компиляции - он "исчезнет" или все же останется в байткоде и интерпретатор будет каждый раз проводить проверку?

по логике - данный код должен быть "вырезан" компилятором, т.к. на этапе компиляции гарантировано известно, что данный код выполняться не будет(или наоборот в случае значения true).
 

AmdY

Пью пиво
Команда форума
разве что zend optimizer может вырезать, а для чистого php при разборе подобные оптимизации - дорогая роскошь.
 

iamFake

Mind Of Liberty
iamFake
А какая разница? Что "вырежет" или "не вырежет" изменит?
нано-оптимизации )))))) а если серъезно - просто спонтанный теоретический вопрос, возникший при раздумиях о логике в коде с развитыми дебаг-кондишенами )
 

Вурдалак

Продвинутый новичок
По-моему, в случае с PHP это невозможно: проверка того, определена ли константа 'DEBUG' вообще, происходит в runtime. Соответственно, на момент генерации байт-кода, значение константы неизвестно.
 
Сверху