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

PHP 中 include、require、include_once、require_once 的差異詳解

     編輯:PHP 相關知識

PHP 四大檔案引入函式的核心差異

在 PHP 開發中,include()、require()、include_once()、require_once() 這四個函式都用於引入外部檔案,但它們在錯誤處理與重複引入機制上有關鍵不同。掌握這些差異能幫助你寫出更穩健的程式碼。

1. 錯誤處理機制:警告 vs 致命錯誤

這是兩組函式最大的分水嶺:

  • include / include_once:當引入的檔案不存在或發生錯誤時,只會拋出 Warning(警告),腳本會繼續往下執行。
  • require / require_once:遇到同樣情況會拋出 Fatal Error(致命錯誤),腳本立即停止執行。

範例說明:

<?php
$a = 5;
// 假設 test.php 內容為 $a += 3;
// include('./test.php');  // 正常執行,$a 變為 8
// require('./test.php');  // 正常執行,$a 變為 8

// 引入不存在的 test1.php
// include('./test1.php');  // 輸出 Warning,接著輸出 5(程式繼續跑)
// require('./test1.php');  // 輸出 Fatal Error,程式中止,不會輸出 5
// echo $a;
?>

2. 重複引入防護:_once 後綴的作用

include_once() 和 require_once() 會檢查目標檔案是否已被引入過,若是則跳過重複引入。這對防止函式重複定義、類別重複宣告錯誤至關重要。

<?php
include_once('./test.php');
include_once('./test.php');
include_once('./test.php');
include_once('./test.php');
echo $a; // 輸出 8,test.php 只被執行一次

// 若改用 include() 或 require() 呼叫四次,$a 會遞增四次(5→8→11→14→17)
?>

3. 選擇建議

場景推薦函式理由
核心設定檔、關鍵類別庫require_once缺失即嚴重錯誤,且防重複
可選模組、樣板片段include_once缺失不致命,防重複
確定只引入一次的邏輯require / include略微效能較好(無檢查開銷)

實務上,現代框架(如 Laravel、Symfony)皆透過 Composer 自動載入機制管理依賴,直接使用這四個函式的機會較少,但理解其底層行為對除錯舊專案或撰寫獨立腳本仍有幫助。

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