1

当我运行phpinfo()并查看 下的Configuration类别PHP Core时,我看到一个名为 的指令include_path,其中包含一个本地值和一个主值。

在这种情况下,我的本地值设置为

.:
。/包括:
../包括:
/usr/share/php:
/usr/share/php/smarty:
/usr/share/梨

我的主值设置为

.:
/usr/share/php:
/usr/share/梨:
/usr/share/php/梨:
/usr/share/php/smarty

我试图了解它是如何工作的原因是因为我正在处理的系统中有一个名为 的文件Smarty.class.php,我敢肯定任何使用 Smarty 模板引擎的人都非常熟悉它。

其中一个 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/

因此,似乎在进行包含时,它遵循本地和主值之间的某种顺序include_path

假设到目前为止我的推论是正确的,有人可以解释 PHP 搜索要包含的文件的顺序吗?

4

1 回答 1

1

全局值基本上是在 php.ini 中设置的。本地值是当前使用的值。本地值完全覆盖主值。

根据手册,PHP 按照 include_path 设置中指定的顺序检查路径:http: //php.net/manual/en/ini.core.php#ini.include-path

于 2010-05-05T16:11:32.353 回答