定义绝对路径可能是个好主意。因为:
- 文件/文件夹将来可能会更改位置
- 防止像您的问题这样的问题(不同呼叫的父文件不能相同)
- 如果您查看代码,您就知道应该在哪里找到文件
因此,只需包含一个常量文件,您可以在其中生成级联路径,如下所示:
define('PATH_ROOT' ,__DIR__.'/');
define('PATH_CLASSES' , PATH_ROOT.'classes/');
// ...
在你的脚本中
require_once PATH_CLASSES.'controller/Class.CIAjaxHandler.php';
在这种情况下,您绝对确定要包含的内容,并且 WHERE 是您想要包含的文件。
假设你有这个结构:
/root.php
<?php echo "Hello World";
/index.php
<?php
include 'path1/path1.php';
/path1/path1.php
<?php
include '../root.php';
在这种情况下,如果您调用/path1/path1.php
脚本有效,因为在父文件夹中包含 root.php 就可以了。但是如果你调用/index.php
它不起作用,因为包含文件已经相对于父文件夹。
因此,如果您计划在您的软件中调用不同位置的不同文件,使用常量可能是一种解决方案。
另一种解决方案可以设置包含路径__DIR__
或在相对路径的开头始终指定绝对路径。