在我的php项目中,我尝试包含另一个文件。但是,我发现include语句的工作原理令人困惑。
例如 我在index.php中包含了HelperFile.php文件。这两个文件都在同一目录中。
这有效:include 'HelperFile.php'
,但include '/HelpferFile.php'
和include './HelpferFile.php'
不是
我收到的警告:
PHP警告include(/HelperFile.php):无法打开流
出于好奇,我创建了一个文件夹并将文件HelperFile.php移入其中,但没有任何更改。每当我尝试将相对路径与./
,../
或/
一起使用时,都会收到警告。
有人可以告诉我发生了什么事吗?我仍在学习,无法弄清楚现在正在发生什么。
答案 0 :(得分:1)
PHP相对路径不是很好,它通常更喜欢绝对路径。解决此问题的最简单方法是使用 DIR 魔术常数,该常数将返回您当前所在文件的当前目录。
因此,例如,您可以执行include(__DIR__ . '/HelperFile.php');
,该操作将在当前目录中。
但是说您可以在文件夹中保存文件
include(__DIR__ . '/../MyOtherFile.php');
答案 1 :(得分:0)
如果定义了路径-是否绝对(以驱动器号开头 或\(在Windows上或/在Unix / Linux系统上)或相对于 当前目录(以。或..开头)-include_path将为 完全忽略了。例如,如果文件名以../开头,则 解析器将在父目录中查找所需的文件。
如果您使用.
或..
将被忽略作为相对路径,也将../
用于父目录。