Проблема с включением в PHP - PullRequest
4 голосов
/ 04 октября 2010

Это работает:

require_once 'ModuleTest.php';

Но это не так:

require_once './ModuleTest.php';

Почему? Это приводит к тому же файлу! (Я на Os X, поэтому путь к файлу правильный). Оба файла находятся в одном каталоге.

Ответы [ 2 ]

1 голос
/ 04 октября 2010

requireinclude) работает по-разному, если вы указываете путь и уже находитесь во включаемом файле.

Без указанного пути он сначала просматривается в пути включения (т. Е.предварительно заданный список мест, где могут быть включаемые файлы), затем в пути к исходному скрипту, который был запущен, и, если он не находит его там, он ищет путь к текущему файлу (то есть тот, которыйфактически выполняет включение).

Однако, если вы укажете путь, он пропускает первую часть и смотрит только на путь относительно исходного сценария.

Поэтому, если вы говорите include('ModuleTest.php');, он будет искать больше мест, чем если бы вы сказали include('./ModuleTest.php');.

См. страницу документации для include () , чтобы точно узнать, что происходит.

Это может сбивать с толку, и лучший совет - сохранить структуру вашего пути как можно более простой в управлении.

0 голосов
/ 04 октября 2010

Вы переключили косую черту на '\'?Я думаю, что это может быть проблемой, но не будучи пользователем OS X, я не уверен ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...