Оглавление
Введение в константу __DIR__ в PHPПростой пример использования __DIR__Почему стоит использовать __DIR__Вывод
Использование PHP __DIR__ для подключения файлов
Введение в константу __DIR__ в PHP
В версии PHP 5.3 появилась новая константа
__DIR__. При обращении к __DIR__ внутри файла она возвращает путь к каталогу, в котором этот файл находится. Обратите внимание: в конце пути не добавляется слэш (например, / или \), за исключением случая, если это корневой каталог.Если использовать
__DIR__ внутри подключаемого файла, константа вернёт путь к каталогу именно этого подключаемого файла.С технической точки зрения,
__DIR__ эквивалентен выражению dirname(__FILE__), однако запись с __DIR__ выглядит гораздо компактнее.Простой пример использования __DIR__
Допустим, у вас следующая структура каталогов:
Файл
header.php содержит код для шапки страницы:Файл
footer.php - для подвала, а также выводит значение константы __DIR__:Файл
index.php подключает оба файла и тоже выводит путь:В браузере вы увидите примерно следующее:
Здесь видно: в
index.php константа возвращает путь к этому файлу, а в footer.php - к самому файлу подвала.Почему стоит использовать __DIR__
Рассмотрим более сложную структуру проекта:
В файле
config/app.php определена константа:В
header.php подключается конфигурация и используется константа:Файл
public/index.php подключает шапку и подвал:Если открыть страницу через браузер, всё работает корректно.
Однако, если попробовать подключить те же файлы из
admin/dashboard/index.php:Появится ошибка: PHP не сможет найти файл
../config/app.php, так как путь рассчитывается относительно текущего каталога (admin), а не относительно файла header.php.Решение с помощью
__DIR__Чтобы избежать подобных проблем, используйте
__DIR__ при подключении файлов:Теперь путь всегда будет строиться от каталога текущего файла (
header.php), и ошибки не возникнет.Вывод
- Константа
__DIR__возвращает путь к каталогу файла, в котором она используется. - При подключении файлов всегда используйте
__DIR__для построения путей - это избавит от ошибок при переносе или изменении структуры проекта. - Такой подход делает код более надёжным и удобным для поддержки.

