如果我在路径中有一个名为 inc.php 的文件和另一个名为 inc.php 的文件在与 index.php 相同的目录中,并且在 index.php 中放置
include('inc.php')
将包含哪个文件?
如果我在路径中有一个名为 inc.php 的文件和另一个名为 inc.php 的文件在与 index.php 相同的目录中,并且在 index.php 中放置
include('inc.php')
将包含哪个文件?
当您执行包含时,PHP 会搜索包含路径中的每个条目,检查文件是否存在,直到找到它,然后它将该条目中的文件包含在包含路径中。
通常,包含路径具有 . (当前工作目录)作为它的第一个条目。
因此,除非您更改了 include_path,否则 . 不再是第一个条目,它将包含当前工作目录中的文件,因为它也是它在 include_path 中找到的文件的第一个副本。
PHP 将include path
从左到右遍历您的文件夹,并为每个文件夹检查该文件夹中是否存在这样的文件。
它将包括它找到的第一个。
如果包含路径".:/some/dir/:/some/other/dir"
,它将首先在当前文件夹中查找。然后检查其他的,如果它没有找到任何东西。
所以通常它会将文件包含在同一个文件夹中。
要查看包含路径的样子,请使用 (fe)echo ini_get("include_path");
可以在include()
函数文档中找到:
如果在 include_path 中找不到该文件,则 include() 最终会在失败之前检查调用脚本自己的目录和当前工作目录。
所以include_path
首先搜索的是当前目录(但include_path
如果有.
内部目录,您可以包括当前目录,甚至可能首先取决于您的服务器配置)。