17:54 

defined() - ЗЛО!

Samuraisa
Никогда по возможности не используйте в php ф-цию defined() -- она медленнее медленного.
Как пишет мой западный коллега, самый медленный вариант проверки условия с параметром:

defined(CONST);

где CONST - неопределённая константа.
По идее следующий по тормознутости вариант это где CONST -- определённая константа.
Но у него это исчислялось миллисикундами (2+ для определённой константы и 12+ миллисекунд при неопределённой). Собственно вот:



У меня же на практике выходит ещё веселее:
В индексном файле (index.php) объявляю:
define('INDEX', 1);

а в начале подключаемых через include_once() файлов делаю проверку
if (!defined(INDEX)) header("Location: /"); // перенаправляю на индексный файл

И вот, при отработке файла отдельно, т.е. при неопределённой константе, там действительно дело идет в миллисекундах и он перенаправляет на индексный, что я и заметить толком не успеваю невооруженным глазом. Да и пробовал там же перед самой проверкой тупо для тестов определить константу - не заметно.

А вот при отработке в паре с include_once() дела хуже некуда -- константа, выходит, что определена, а страница объемом менее 1 КБ в браузере грузится более секунды, т.е. тупо раздражительно залипает. Только комментирую строку с проверкой, как перезагрузка страницы становится подобна мельканию.

Так-то!

@темы: defined, php, work, работа

URL
   

Сам у рай

главная