Оглавление
ВведениеКак избежать повторного подключения файлаЗачем использовать PHP include_onceИтог
Конструкция PHP include_once
Введение
В предыдущем уроке по
include вы научились загружать код из другого файла с помощью конструкции include.Иногда возникает ситуация, когда один и тот же файл подключается несколько раз. Если в подключаемом файле определена функция, при повторном подключении вы получите фатальную ошибку, так как функция уже была объявлена ранее. Например:
Предположим, у вас есть следующая структура проекта:
В файле
functions.php определена функция dd():А в файле
index.php вы подключаете functions.php дважды:При запуске
index.php PHP выдаст ошибку:Аналогично, если подключаемый файл выводит какие-либо HTML-элементы, они появятся на странице несколько раз. Для демонстрации создадим два новых файла:
header.php и footer.php в каталоге inc.header.php
footer.php
Если в
index.php подключить header.php дважды:На странице появится два заголовка.
Как избежать повторного подключения файла
Чтобы избежать повторного подключения файла, используйте конструкцию
include_once:include_once работает так же, как и include, но если файл уже был подключён, он не загружается повторно и возвращает true.Проще говоря,
include_once загружает файл только один раз, независимо от количества вызовов.В предыдущем примере, если использовать
include_once, скрипт отработает корректно:Зачем использовать PHP include_once
Представьте, что у вас есть файл
index.php, который подключает два других файла: Logger.php и Database.php. При этом файл Database.php также подключает Logger.php. В этом случае Logger.php будет подключён дважды: один раз в Database.php, другой в index.php.В такой ситуации необходимо использовать
include_once для подключения Logger.php, чтобы избежать ошибок и повторного выполнения кода.Итог
Используйте конструкцию PHP
include_once для однократного подключения файла. Это помогает избежать ошибок повторного объявления функций и дублирования вывода на странице.
