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

PHP 4 引用檔案語句比較:require、include、require_once、include_once

     編輯:PHP 綜合知識

PHP 4 引用檔案語句比較:require、include、require_once、include_once

PHP 4 提供四種引用外部檔案的語句,理解其差異對撰寫高效、可維護的程式碼至關重要。

比較表

語句引入時機錯誤處理重複引入典型用途
require()編譯階段(腳本啟動前)致命錯誤,腳本停止允許重複(會重複執行)核心設定檔、必要函式庫
include()執行階段(遇到該行時)警告,腳本繼續允許重複條件式引入、模板檔案
require_once()編譯階段致命錯誤**僅引入一次**類別定義、函式庫(防止重複定義)
include_once()執行階段警告**僅引入一次**可選模組、條件式載入類別

詳細行為差異

require()

  • 在 PHP 程式**執行前**就讀入檔案,通常置於檔案開頭。
  • **無視條件判斷**:即使寫在 if (false) 區塊內,仍會被引入。
  • 引入失敗產生 E_COMPILE_ERROR,腳本終止。

include()

  • 只有在**程式執行到該行**時才引入。
  • 適合條件式引入(如 if ($cond) include 'a.php';)。
  • 引入失敗產生 E_WARNING,腳本繼續執行。

require_once() / include_once()

  • 維護內部「已引入檔案清單」,同一檔案在同一次請求中**只會被引入一次**。
  • 防止類別重複定義錯誤(Cannot redeclare class)。
  • 效能稍低(需檢查清單),但換來安全性與維護性。

被引入檔案的 PHP 標記規則

  • 被引入檔案**不繼承**主程式的 PHP 標記(<?php ... ?>)。
  • 若被引入檔案包含 PHP 程式碼,**必須自行加上標記**。
  • 引用檔案不是獨立執行,而是將程式碼「內插」到主程式對應位置。

PHP 4 新增特性

  • 引用語句具備函式特性:支援 return 回傳值、支援在被引入檔案中使用 return 終止引入繼續主程式。
  • 這在 PHP 3 中不支援。

最佳實踐建議

  1. **類別/介面定義檔**:一律使用 require_once。
  2. **設定檔/核心函式庫**:使用 require(確保載入)。
  3. **模板/視圖檔案**:使用 include(條件式載入)。
  4. **可選功能模組**:使用 include_once。
  5. 現代 PHP (5.3+) 建議配合 Composer 自動載入(PSR-4),盡量避免手動 require/include。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved