Нет. Использование ./
в начале имени вашего включаемого файла вынуждает его искать в «текущем каталоге», заданном вашим веб-сервером (скорее всего, каталогом исходного сценария или DocumentRoot, в зависимости от веб-сервера).
Способ получения желаемого поведения зависит от значения вашего include_path
(которое можно изменить с помощью set_include_path()
, если необходимо).
Из документации на include()
:
Файлы для включения сначала ищутся в каждом include_path entry
относительно текущего рабочего каталога, а затем в каталоге текущего скрипта. Например. если ваш include_path
равен libraries
, текущий рабочий каталог равен /www/
, вы включили include/a.php
и там есть "b.php
"в этом файле b.php сначала просматривается в /www/libraries/
, а затем в /www/include/
. Если имя файла начинается с ./
или ../
, оно ищется только в текущем рабочем каталоге или в родительском текущем рабочем каталоге, соответственно.
Итак, если нет никакой вероятности, что имя файла будет найдено в другом каталоге в include_path
, вы можете использовать include('apple.php')
.
Если существует вероятность того, что apple.php существует в другом месте, и вы хотите, чтобы копия в этой папке использовалась первой, вы можете либо воспользоваться предложением Мэтью, и
include(dirname(__FILE__).'/apple.php');
или, если у вас есть много файлов для включения из текущего каталога:
old_include_path = set_include_path(dirname(__FILE__));
include('apple.php');
include('orange.php');
include('peach.php');
include('pear.php');
set_include_path(old_include_path);