首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 5.3 新魔術常數 __DIR__:取得目前腳本目錄的最佳寫法

     編輯:PHP 綜合知識

PHP 5.3 引入 __DIR__ 魔術常數,直接回傳目前執行腳本所在的絕對目錄路徑(不含結尾斜線),等同於 dirname(__FILE__) 但更簡潔、效能略優。

對照表

常數範例值(腳本 /www/website/index.php)說明
__FILE__/www/website/index.php完整檔案路徑
__DIR__/www/website目錄路徑(PHP 5.3+)
dirname(__FILE__)/www/website舊版相容寫法

常見應用場景

1. 包含同目錄下的檔案

require_once __DIR__ . '/config.php';
include __DIR__ . '/functions/helper.php';

2. 建構專案根目錄路徑

// 假設腳本在 /var/www/project/public/index.php
define('ROOT_PATH', dirname(__DIR__)); // /var/www/project
require_once ROOT_PATH . '/vendor/autoload.php';

3. 避免相對路徑問題

使用 include './file.php' 會隨「當前工作目錄」改變而失效,__DIR__ 永遠指向腳本實際位置,極大提升可靠度。

效能微差異

__DIR__ 在編譯階段即解析為字面常數,dirname(__FILE__) 需執行函式呼叫。雖差異極微(奈秒級),但在大量包含的專案中累積可觀。

相容性提醒

  • PHP 5.3 以上可用(2009 年釋出,現已普及)。
  • 舊專案若需支援 PHP 5.2,可用 dirname(__FILE__) 或定義常數:define('CURRENT_DIR', dirname(__FILE__));

其他實用魔術常數

常數說明
__LINE__目前行號
__FUNCTION__函式名稱(區分大小寫)
__CLASS__類別名稱(含命名空間)
__METHOD__類別方法名稱
__NAMESPACE__目前命名空間名稱

最佳實踐總結

永遠使用 __DIR__ 替代 dirname(__FILE__),語意更清晰、程式碼更簡潔、效能略優,是現代 PHP 專案的標準寫法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved