在包含包含其他文件的文件时,我遇到以下问题:
// path: /ajax/request.php
require_once("../classes/obj/Car.php");
// path: /classes/obj/Car.php;
require_once("Vehicle.php"); // superclass, this works
require_once("../exception/NoWheelException"); // this doesn't work when Car.php is require_once()'d from /ajax/request.php
问题似乎是,如果文件A
要求文件B
需要文件C
和D
,则只有在C
和使用D
时,"../"
在文件名前没有"./"
或require_once()
的情况下使用。
是否有任何解决方法或任何想法来解决此问题?
答案 0 :(得分:3)
使用__FILE__
,以便了解其中包含的内容:
require_once(dirname(__FILE__) . '/../exception/NoWheelException');
其中:
__FILE__ == "/classes/obj/Car.php";
dirname(__FILE__) == "/classes/obj";
另外,我不知道的一个注释 - 如果您的PHP版本足够新,__DIR__
appears to be equivalent to dirname(__FILE__)