2015-08-16 12 views
0

я следующие три файла в каталоге под названием inc в моем веб-корень:Почему PHP включает файл в файл, содержащийся с абсолютным путём, но не с относительным путем?

  • A.php
  • b.php
  • c.php

В a.php, у меня есть следующий код:

<?php 

    include('b.php'); 
    include('c.php'); 

Если у меня включен a.php в другом файле за пределами каталога inc с использованием абсолютного пути, операторы include для b.php и c.php работают нормально. Однако, если я использую относительный путь для включения a.php в файл за пределами каталога inc, то операторы include для b.php и c.php не работают.

Почему?

+2

Включить() пути не по отношению друг к другу, но и к текущему рабочему каталогу. CWD - это местоположение сценария вызова. – mario

+0

mario, ваш комментарий имеет смысл, но если это так, почему код в 'a.php' (см. Выше) работает, когда' a.php' включен в другой скрипт с абсолютным путем, но не с относительным путем ? – HartleySan

+0

Я сомневаюсь, что это действительно работает. Пример слишком абстрактный, чтобы рассказать. (Добавьте утверждения печати в a/b/c, чтобы убедиться, что они действительно запущены, и это не просто, например, подавление ошибок. Также отлаживайте include_path впоследствии.) – mario

ответ

1

Вы должны использовать волшебную константу __DIR__ как в

<?php include __DIR__ . '/b.php';