2

包含包含另一个文件的文件时,我遇到以下问题:

// 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只有在使用.CD"../""./"require_once()

是否有任何解决方法或任何想法来解决这个问题?

4

1 回答 1

3

使用__FILE__以便您知道它的包含位置:

require_once(dirname(__FILE__) . '/../exception/NoWheelException');

在哪里:

__FILE__ == "/classes/obj/Car.php";
dirname(__FILE__) == "/classes/obj";

另外,我不知道的注释 - 如果您的 PHP 版本足够新,__DIR__似乎相当于dirname(__FILE__)

更多信息__FILE__和其他魔法常数在这里

于 2013-11-07T17:09:34.330 回答