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

PHP 相對當前檔案引入其他檔案:dirname(__FILE__) 最佳實踐

     編輯:PHP 相關知識

在專案架構中,常需引入同目錄或子目錄下的類別檔、設定檔。若使用相對路徑 include 'config.php',執行腳本若在不同目錄下,便會發生「找不到檔案」錯誤。解決之道是以目前執行檔案的絕對目錄為基準,動態建構引入路徑。

核心技巧:dirname(__FILE__) 或 __DIR__

  • __FILE__:魔術常數,回傳目前檔案的完整絕對路徑(含檔名)。
  • dirname(__FILE__):取得目前檔案所在的目錄路徑。
  • PHP 5.3+ 可直接使用 __DIR__,等同於 dirname(__FILE__),更簡潔高效。

標準引入模式

<?php
// 取得目前檔案所在目錄
$currentDir = __DIR__; // 或 dirname(__FILE__)

// 引入同層檔案
include $currentDir . '/functions.php';
include $currentDir . '/classes.php';

// 引入子目錄檔案
include $currentDir . '/lib/Database.php';
include $currentDir . '/../config/app_config.php'; // 上層目錄
?>

為何不直接用相對路徑?

PHP 的相對路徑是相對於進入點腳本(如 index.php),而非目前正在執行的 include 檔案。若 A include B,B 再 include C,B 使用相對路徑找 C 時,基準仍是 A 所在目錄,導致路徑錯誤。使用 __DIR__ 則永遠以 B 自身位置為準,消除此類問題。

現代替代方案:Composer 自動載入

若專案已使用 Composer,建議採用 PSR-4 自動載入,完全避免手寫 include/require,只需在類別中 use 對應命名空間即可。

小結

  • 永遠使用 __DIR__ (或 dirname(__FILE__)) 作為路徑基準。
  • 路徑拼接建議使用 DIRECTORY_SEPARATOR 或統一正斜線 /(PHP 在 Windows 也支援)。
  • 大型專案請改用 Composer 自動載入,減少維護負擔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved