Допустим, у меня есть два файла в каталоге new_folder: a.php и b.php
В файле a.php есть утверждение:
include_once 'b.php'
Кроме того, у меня есть файл demo.php в родительской папке, в демо-файле есть утверждение:
include_once 'new_folder/a.php'
И.Е. структура папок:
demo.php
new_folder
- a.php
- b.php
Почему, если я пишу в файле .php:
include_once 'b.php'
— правильный путьinclude_once './b.php'
— неверный путьinclude_once 'new_folder/b.php'
— неверный путьПопробуй это
require_once('../b.php');
мой ответ основан на php.net:
Файлы включаются на основе заданного пути к файлу или, если он не указан, указан include_path. Если файл не найден в include_path, включается, наконец, включение собственный каталог вызывающего скрипта и текущий рабочий каталог до сбоя.
это означает, что если я напишу в a.php: include_once ‘b.php’; и затем включите a.php в demo.php, затем сначала он ищет файл в include_path, затем он будет искать файл в каталоге вызывающего скрипта (a.php), и только затем он будет искать файл в рабочем каталоге (это каталог файла, который мы запускаем и запускает все include- demo.php)
edit: я попытался запустить его и обнаружил, что сначала, если в рабочем каталоге есть b.php, то он будет включать его, а не b.php из собственного каталога вызывающего скрипта.
последняя проверка для файла находится в new_folder (собственный каталог вызывающего скрипта)