getcwd() :顯示是 在哪個文件裏調用此文件 的目錄
__DIR__ :當前內容寫在哪個文件就顯示這個文件目錄
__FILE__ : 當前內容寫在哪個文件就顯示這個文件目錄+文件名
由此可見
getcwd()和 __DIR__ 返回的是文件所在的絕對路徑但是沒有文件自身的名字在內。
__FILE__則是返回的是文件所在的絕對路徑但是有文件自身的名字在內
以下是百度來的參考資料
在ch06中建立文件 test.php。目錄爲:ch06\test.php
內容如下:
<?php $a= getcwd(); //變量a的值爲D:\php\zend6.1\ch6 $b=__FILE__; //變量b的值爲D:\php\zend6.1\ch6\test.php ?>
下面在ch06項目下建立文件夾admincp文件夾。在admincp文件夾下建立文件fff.php。目錄爲:ch06\admincp\fff.php
代碼如下
<?php include_once '../test.php'; echo $a;//變量a中的值是D:\php\zend6.1\ch6\admincp echo '<pre>'; echo $b;//變量b中的值是D:\php\zend6.1\ch6\test.php ?>
由此可見,在另一個文件中包含test.php文件。在test.php文件中用getcwd()獲取的test.php的路徑變量a在包含之後發生變化。目錄結構加上了ffff.php的所在目錄admincp,所以·在用文件定位時__FILE__較好
舉例
<?php define('PATH_ROOT',($PATH_ROOT=dirname(__FILE__))?$PATH_ROOT:'..'); $PATH_admincp=PATH_ROOT.'\admincp'; $PATH_picture=PATH_ROOT.'\pciture'; $PATH_admincp_include=$PATH_admincp.'\include'; ?> <?php include_once dirname(__FILE__).'/../../path.php'; include_once PATH_ROOT."/con_ini.php"; ?>