PHP включает один раз

Является ли более эффективным использование PHP include_once или require_once вместо использования C-like include с защитой заголовка?

То есть,

 include_once 'init.php'; 

против

 include 'init.php'; //contents of init.php if (!defined('MY_INIT_PHP')) { define('MY_INIT_PHP', true); ... } 

Solutions Collecting From Web of "PHP включает один раз"

«require_once» и «include_once», как правило, немного медленнее, чем «требуют» и «включать», потому что они выполняют проверку, прежде чем файл уже загружен.

Но разница имеет значение только в действительно сложных приложениях, где вы должны делать автозагрузку в любом случае, и вам не понадобится require_once / include_once, если ваш автозагрузчик хорошо закодирован.

В большинстве простых приложений лучше использовать require_once / include_once для удобства.

Подход защиты заголовка – это просто грязный код, которого следует избегать. Представьте себе, если вы забыли эту проверку в одном из многих файлов. Отладка, которая может стать кошмаром.

Просто используйте автозагрузку, если ваше приложение подходит для нее. Это быстро и удобно и чисто.

Я ожидал бы, что include_once будет быстрее, чем использование защиты заголовка внутри включенного файла, так как вам все равно нужно открыть и загрузить файл в последнем.

Вы можете попробовать его 10 000 раз с помощью таймера, но я думаю, что определение MY_INIT_PHP бесконечно быстрее.

Честно говоря, это, скорее всего, такая маленькая разница, что нет практической необходимости заботиться, если вы не работаете на таких сайтах, как Facebook.

Я всегда использую REQUIRE_ONCE, если содержимое скрипта уникально.