我有一个目录根:
index.php
includes/
template.php
testfile.php
phpFiles/
processInput.php
testfile.php
索引.php:
require_once("includes/template.php");
模板.php:
require_once("includes/phpFiles/processInput.php")
进程输入.php:
require_once("testfile.php")
require_once("../testfile.php")
这段代码在你运行 index.php 时会起作用,当然在你运行 template.php 时它不会起作用。
如您所见,index.php 像平常一样包含 template.php。但是在 template.php 中,您必须像在 index.php 所在的目录中一样包含。但是,在 processInput.php 中,您必须像在 processInput.php 所在的目录中一样包含。
为什么会发生这种情况,我该如何解决它,以便包含路径始终是完成要求的文件的目录?第二个包含的文件与请求的文件具有相同的包含路径,但下一个没有。
谢谢你的帮助!
编辑:奇怪的是我在类文件夹中包含了类。它包括其他文件,即使路径是相对的。为什么会发生这种情况,我该如何解决?
非常重要的编辑:我刚刚意识到这一切都是因为在我的示例中,includes/phpFiles/processInput.php 中的包含包括同一目录中的一个文件: require_once("file in same dir.php"); 这就是原因。如果您包含一个文件而没有指定文件名以外的任何内容,则 include_path 实际上是写入要求的文件所在的目录。任何人都可以确认这一点吗?