0

如果我在路径中有一个名为 inc.php 的文件和另一个名为 inc.php 的文件在与 index.php 相同的目录中,并且在 index.php 中放置

include('inc.php')

将包含哪个文件?

4

3 回答 3

4

当您执行包含时,PHP 会搜索包含路径中的每个条目,检查文件是否存在,直到找到它,然后它将该条目中的文件包含在包含路径中。

通常,包含路径具有 . (当前工作目录)作为它的第一个条目。

因此,除非您更改了 include_path,否则 . 不再是第一个条目,它将包含当前工作目录中的文件,因为它也是它在 include_path 中找到的文件的第一个副本。

于 2011-03-11T10:13:05.110 回答
2

PHP 将include path从左到右遍历您的文件夹,并为每个文件夹检查该文件夹中是否存在这样的文件。

它将包括它找到的第一个。

如果包含路径".:/some/dir/:/some/other/dir",它将首先在当前文件夹中查找。然后检查其他的,如果它没有找到任何东西。

所以通常它会将文件包含在同一个文件夹中。

要查看包含路径的样子,请使用 (fe)echo ini_get("include_path");

于 2011-03-11T10:13:30.943 回答
1

可以在include()函数文档中找到:

如果在 include_path 中找不到该文件,则 include() 最终会在失败之前检查调用脚本自己的目录和当前工作目录。

所以include_path首先搜索的是当前目录(但include_path如果有.内部目录,您可以包括当前目录,甚至可能首先取决于您的服务器配置)。

于 2011-03-11T10:12:47.200 回答