php包含需要注意:
目錄結(jié)構(gòu)
xxxxx
|--a.php
|--util.php
|--yyyy
|--b.php
----------------------------------------------------------------
a.php
<?php
reqiure_once("yyyy/b.php");
?>
----------------------------------------------------------------
b.php
<?php
reqiure_once("../util.php");
?>
運行a.php會出錯,因為這時說找不到util.php,因為他包含了b.php,相當(dāng)于直接把b.php的內(nèi)容復(fù)制到a.php中,即最后a.php的內(nèi)容為:
<?php
reqiure_once("../util.php");
?>
所以出錯了。
如果能直接用絕對路徑來表示的話,當(dāng)然不會出錯,但是換目錄了呢?
可以使用__FILE__來動態(tài)的取得php文件的絕對路徑
__FILE__ always equals to the real path of php script whether it is included.
__FILE__ 返回的是php文件絕對路徑,在被其他文件包含前就被執(zhí)行了.
使用__FILE__來解決包含問題:
a.php
<?php
reqiure_once(dirname(__FILE__) . "/yyyy/b.php");
?>
----------------------------------------------------------------
b.php
<?php
require_once(dirname(__FILE__) . "/../util.php");
?>
dirname(__FILE__)沒有返回 /, 雖然代碼長了點,但是很好的解決了問題。