- Подключение файлов
- Зачем разделять и подключать PHP-сценарии
- Способы подключения файлов — require и require_once
- Примеры подключения файлов
- Абсолютные и относительные пути
- Видимость переменных в подключаемых сценариях
- PHP __DIR__
- Introduction to the PHP __DIR__ magic constant
- Simple PHP __DIR__example
- Why using PHP __DIR__
- Summary
- PHP требует файл из верхнего каталога
- 5 ответов
- Использовать относительный путь от form.php
- Используйте переменную $_SERVER[‘DOCUMENT_ROOT’]
- Использовать автозагрузчик
- Настройка PHP включает пути
- Вывести значение php require выше?
Подключение файлов
Способность вызывать сценарий из отдельного файла по его имени называется в PHP подключением файлов. Подключают PHP-сценарии, любые текстовые файлы или HTML-страницы.
Зачем разделять и подключать PHP-сценарии
PHP-разработчики дробят исходный код проекта на отдельные сценарии, чтобы было проще работать. Если написать код в одном файле, сценарий станет необъятным, и ориентироваться будет невозможно.
Если вынести повторяющиеся блоки кода в отдельные сценарии, то появится возможность повторно использовать один код в разных файлах и подключать его только по требованию.
Например, пользовательские функции удобно объявлять в отдельном сценарии, а затем подключать там, где эти функции понадобились.
Способы подключения файлов — require и require_once
Для подключения файлов в PHP есть две языковые конструкции: require и require_once . Отличия между ними минимальны. Оба этих ключевых слова подключают файл с указанным именем и вызывают ошибку, если данный файл не существует.
👉 Особенность работы require_once — он позволяет подключать файл только один раз, даже если вызывать инструкцию несколько раз с одним именем файла.
Примеры подключения файлов
Рассмотрим, как подключить один сценарий внутри другого. Для этого воспользуемся инструкцией require . Предположим, у нас есть два сценария: index.php и sub.php .
В файле index.php находится код, который подключит сценарий sub.php :
Интересный факт: require можно использовать как ключевое слово, либо как функцию.
Результат будет одним и тем же:
Результат работы:
Привет, я содержимое из sub.php! А я - index.php!
Что произошло? Два сценария как бы склеились в один: выполнилось все содержимое sub.php и добавилось в начало сценария index.php .
О работе с функцией require подробно рассказано в этом задании.
Абсолютные и относительные пути
При подключении файла в качестве его адреса указывают абсолютный или относительный путь.
Абсолютный путь — это полный адрес файла от корня диска. Например, /var/www/web/site/inc/sub.php
Относительный путь содержит адрес относительно текущей рабочей директории. Если сценарий лежит в папке /var/www/web/site , то для подключения файла используется такой путь: inc/sub.php
Рекомендуется всегда указывать относительные пути, чтобы сайт продолжал работать, если его переместят в другую папку.
👉 В PHP есть полезные встроенные константы, их используют в пути к подключаемым файлам.
__DIR__ — полный путь к директории с текущим сценарием.
__FILE__ — полный путь к текущему сценарию.
Видимость переменных в подключаемых сценариях
При подключении файлы склеиваются в один, поэтому и все переменные в разных сценариях тоже получают общую область видимости.
В PHP нет системы модулей, как в других языках программирования (Python, Java, ECMAScript 12). Невозможно «импортировать» отдельные переменные или функции из подключаемого сценария.
Если подключить один сценарий дважды, то переменные и функции из него тоже объявятся повторно, а это вызовет ошибку. Чтобы такого не произошло, используйте require_once .
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
PHP __DIR__
Summary: in this tutorial, you’ll learn about how to use the PHP __DIR__ magic constant when including a PHP file.
Introduction to the PHP __DIR__ magic constant
PHP 5.3 introduced a new magic constant called __DIR__ . When you reference the __DIR__ inside a file, it returns the directory of the file. The __DIR__ doesn’t include a trailing slash e.g., / or \ except it’s a root directory.
When you use the __DIR__ inside an include, the __DIR__ returns the directory of the included file.
Technically speaking, the __DIR__ is equivalent to the dirname(__FILE__) . However, using the __DIR__ is more concise than the dirname(__FILE__) .
Simple PHP __DIR__example
Suppose you have the following directory structure:
. ├── inc │ ├── footer.php │ └── header.php └── index.php
Code language: CSS (css)
The header.php contains the code of the header part:
"en"> "UTF-8"> "viewport" content="width=device-width, initial-scale=1.0"> Code language: PHP (php)
The footer.php contains the code of the footer part. It also shows the value of the __DIR__ constant:
echo __DIR__ ?>