2010-05-05 2 views
1

Когда я запустил phpinfo() и посмотрю Configuration категории под PHP Core, я вижу директиву под названием include_path с локальным значением и основным значением.Как узнать, какой путь include будет использоваться в PHP?

В этом случае мое локальное значение устанавливается в

 
.: 
./include: 
../include: 
/usr/share/php: 
/usr/share/php/smarty: 
/usr/share/pear 

и мой мастер установлено значение

 
.: 
/usr/share/php: 
/usr/share/pear: 
/usr/share/php/pear: 
/usr/share/php/smarty 

Причина я пытаюсь узнать, как это работает, потому что есть файл в системе, я работаю под названием Smarty.class.php, что, я уверен, звучит очень знакомо всем, кто использует Smarty Templating Engine.

Один из PHP-файлов имеет следующие включает в себя:

 
require_once("Smarty.class.php"); 
require_once("user_info_class.inc"); 

Файл user_info_class.inc находится в том же каталоге, что и файл делая включаемый, что делает прекрасный смысл для меня, и это путь, который я всегда ссылаются на файлы. Я решил, что хочу открыть файл Smarty.class.php и предположил, что он будет в том же каталоге, но это не так.

После небольшого перекопа я обнаружил переменные php_ini и, наконец, смог найти файл в каталоге usr/share/php/smarty/.

Так что, казалось бы, при создании включить его следует какой-то порядок между значениями Local и Master для include_path.

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

ответ

1

Глобальное значение - это в основном то, что установлено в php.ini. Локальное значение - это то, что в настоящее время используется. Локальное значение полностью перезаписывает главное значение.

Согласно инструкции, PHP проверяет пути в том порядке, в котором они указаны в параметре include_path: http://php.net/manual/en/ini.core.php#ini.include-path

+0

Высоких, спасибо очень много Аллена. Это прекрасно отвечает на мой вопрос. ++ –

Смежные вопросы