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を必要とする場合、を使用するときにファイル名の前にファイル名とを使用しない場合にのみ機能することです。CDCD"../""./"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 に答える