当我跑步时 phpinfo() 看看 Configuration 类别下 PHP Core, ,我看到一个标题为 include_path, ,具有本地价值和主值。

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

.:
./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, ,我敢肯定,对于任何使用智能模板引擎的人来说,这听起来都很熟悉。

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搜索要包括的文件的顺序吗?

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top