PHP 中的 include 和 require 差異

2024-08-12 2024-08-12

在 PHP 開發中,經常需要將程式碼分成多個文件,以提高程式碼的可維護性和重複使用性。
PHP 提供了兩個強大的函數,include 和 require,它們用於將一個檔案的內容引入到另一個檔案中。
雖然它們的功能非常相似,但在某些情況下,它們的行為有一些重要的差異。

一、include 函數

include 函數有一個重要的特性是當要引入的檔案不存在或是包含錯誤時不會停止執行,而是會產生一個警告,並繼續執行程式。

<?php
    include 'header.php';

    echo "哈囉~我是內容~";

    include 'footer.php';
?>

二、require 函數

require 函數與 include 作用相似,以是用於引入外部文件的內容,然而,與 include 不同的是,如果引入的文件不存在或是包含錯誤,會立即停止程式,並生成致命錯誤。

<?php
    require 'header.php';

    echo "哈囉~我是內容~";

    require 'footer.php';
?>

三、include_once 和 require_once 函數

除了上述所提到的 include 和 require,PHP 還提供 include_once 和 require_once 函數,這兩個與 include 和 require 類似,不同的是它們確保文件只被引入一次,避免重複引入問題。

<?php
    include_once 'functions.php';

    require_once 'config.php';

    // 即使再次調用,functions.php 和 config.php 也不會重複引入
    include_once 'functions.php';
    require_once 'config.php';
?>
稍微耗費效能,因需要檢查是否已經引入過。

四、使用時機

  • include:當引入文件不是必要的,程式仍然可以繼續執行。例如,引入一個模板檔案。
  • require:當引入的文件定義相關參數,如果缺少會影響程式無法正常執行。例如,配置文件等。

五、結語

在開發過程中,合理的使用 include 和 require 可以使程式模組化更易於維護。
include 適用於可選或是次要文件,而 require 則用於關鍵、必要的文件。
理解它們的區別和使用情境,有助於編寫出更靈活的 PHP 程式。