Да, require_once () идет с нагрузкой на процессор и память, но никак не влияет на производительность. На самом деле, это очень эффективная операция, потому что PHP просто выполняет поиск по хеш-таблице, чтобы решить, был ли этот файл уже проанализирован или нет. Не доставляйте себе ненужных головных болей с помощью таких хаков, как, например, ваш пример !fined ('FOOBAR'), потому что он делает то же самое, только с меньшей элегантностью.
Во время PHP-запроса требуется время для поиска пути к файлу, а затем последующего шага синтаксического анализа. Количество ресурсов, необходимое для выполнения, чтобы определить, проанализировали ли вы файл ранее, ничтожно мало.
Есть несколько вещей, которые вы можете сделать, чтобы ваш запрос работал быстрее:
- избежать чрезмерно длинного пути поиска в include () и require ()
- возможно использование абсолютных путей включения
- включать вещи только по мере необходимости
- кэшировать большие выходные фрагменты
- кешировать результаты сложных запросов
- написать краткий код, разгрузить редко используемые функции в исходные файлы по требованию
Если вы используете кэш кода или какой-либо оптимизатор времени выполнения, прочитайте руководство - у них есть разные стратегии, которые могут реально снизить производительность или привести к ошибкам в зависимости от вашего кода.
Последний совет: остерегайтесь преждевременной оптимизации! Запросы, занимающие от 0 до 50 миллисекунд на сервере, практически не различимы на стороне пользователя.