Никогда по возможности не используйте в php ф-цию defined() -- она медленнее медленного.
Как пишет мой западный коллега, самый медленный вариант проверки условия с параметром:
defined(CONST);
где CONST - неопределённая константа.
По идее следующий по тормознутости вариант это где CONST -- определённая константа.
Но у него это исчислялось миллисикундами (2+ для определённой константы и 12+ миллисекунд при неопределённой). Собственно вот:
У меня же на практике выходит ещё веселее:
В индексном файле (index.php) объявляю:
define('INDEX', 1);
а в начале подключаемых через include_once() файлов делаю проверку
if (!defined(INDEX)) header("Location: /"); // перенаправляю на индексный файл
И вот, при отработке файла отдельно, т.е. при неопределённой константе, там действительно дело идет в миллисекундах и он перенаправляет на индексный, что я и заметить толком не успеваю невооруженным глазом. Да и пробовал там же перед самой проверкой тупо для тестов определить константу - не заметно.
А вот при отработке в паре с include_once() дела хуже некуда -- константа, выходит, что определена, а страница объемом менее 1 КБ в браузере грузится более секунды, т.е. тупо раздражительно залипает. Только комментирую строку с проверкой, как перезагрузка страницы становится подобна мельканию.
Так-то!
Как пишет мой западный коллега, самый медленный вариант проверки условия с параметром:
defined(CONST);
где CONST - неопределённая константа.
По идее следующий по тормознутости вариант это где CONST -- определённая константа.
Но у него это исчислялось миллисикундами (2+ для определённой константы и 12+ миллисекунд при неопределённой). Собственно вот:
У меня же на практике выходит ещё веселее:
В индексном файле (index.php) объявляю:
define('INDEX', 1);
а в начале подключаемых через include_once() файлов делаю проверку
if (!defined(INDEX)) header("Location: /"); // перенаправляю на индексный файл
И вот, при отработке файла отдельно, т.е. при неопределённой константе, там действительно дело идет в миллисекундах и он перенаправляет на индексный, что я и заметить толком не успеваю невооруженным глазом. Да и пробовал там же перед самой проверкой тупо для тестов определить константу - не заметно.
А вот при отработке в паре с include_once() дела хуже некуда -- константа, выходит, что определена, а страница объемом менее 1 КБ в браузере грузится более секунды, т.е. тупо раздражительно залипает. Только комментирую строку с проверкой, как перезагрузка страницы становится подобна мельканию.
Так-то!