PHP - 檔案包含



PHP 中的include 語句類似於 Java 或 Python 中的import 語句以及 C/C++ 中的#include 指令。但是,PHP 中 include 語句的工作方式略有不同。

Java/Python 中的 import 或 C/C++ 中的 #include 只加載一個或多個語言結構,例如在一個檔案中定義的函式或類到當前檔案中。相反,PHP 中的 include 語句將另一個檔案中的所有內容都帶入現有的 PHP 指令碼中。它可能是一個 PHP 程式碼、一個文字檔案、HTML 標記等。

PHP 中的“include”語句

這是一個關於 PHP 中 include 語句如何工作的典型示例:

myfile.php

<?php
   # some PHP code
?>

test.php

<?php
   include 'myfile.php';
   # PHP script in test.php
?>

PHP 中的 include 關鍵字非常方便,尤其是在您需要在專案中的多個 PHP 指令碼中使用相同的 PHP 程式碼(函式或類)或 HTML 標記時。一個典型的例子是建立應該出現在 Web 應用程式所有頁面上的選單。

假設您想為您的網站建立一個通用選單。然後,建立一個名為“menu.php”的檔案,內容如下:

<a href="https://tutorialspoint.tw/index.htm">Home</a> - 
<a href="https://tutorialspoint.tw/ebxml">ebXML</a> - 
<a href="https://tutorialspoint.tw/ajax">AJAX</a> - 
<a href="https://tutorialspoint.tw/perl">PERL</a> <br />

現在建立任意數量的頁面,幷包含此檔案以建立標題。例如,現在您的“test.php”檔案可以包含以下內容:

<html>
   <body>
      <?php include("menu.php"); ?>
      <p>This is an example to show how to include PHP file!</p>
   </body>
</html>

假設這兩個檔案都位於 XAMPP 伺服器的文件根目錄資料夾中。訪問https:///test.php URL。它將產生以下輸出

PHP File Include

當 PHP 解析器遇到include關鍵字時,它會嘗試在執行當前指令碼的同一目錄中找到指定的檔案。如果未找到,則搜尋“php.ini”的“include_path”設定中的目錄。

包含檔案時,其包含的程式碼將繼承 include 發生的那一行的變數作用域。呼叫檔案中該行可用的任何變數都將從該點起在被呼叫檔案中可用。但是,包含檔案中定義的所有函式和類都具有全域性作用域。

示例

在以下示例中,我們有一個“myname.php”指令碼,其中聲明瞭兩個變數。它包含在另一個指令碼 test.php 中。變數載入到全域性作用域中。

myname.php

<?php
   $color = 'green';
   $fruit = 'apple';
?>

test.php

<?php
   include "myname.php";
   echo "<h2>$fname $lname</h2>";
?>

當瀏覽器訪問https:///test.php時,它顯示:

Ravi Teja

但是,如果檔案包含在函式內部,則變數僅是該函式的區域性作用域的一部分。

myname.php

<?php
   $color = 'green';
   $fruit = 'apple';
?>

test.php

<?php
   function showname() {
      include "myname.php";
   }
   echo "<h2>$fname $lname</h2>";
?>

現在,當瀏覽器訪問https:///test.php時,它顯示未定義變數警告:

Warning: Undefined variable $fname in C:\xampp\htdocs\test.php on line 7
Warning: Undefined variable $lname in C:\xampp\htdocs\test.php on line 7

include_once 語句

就像include一樣,PHP 也有“include_once”關鍵字。唯一的區別是,如果某個檔案中的程式碼已經被包含,則它將不再被包含,並且“include_once”返回 true。顧名思義,該檔案將只包含一次。

“include_once”可用於在指令碼的特定執行過程中可能多次包含和評估同一檔案的情況,因此它可以幫助避免諸如函式重新定義、變數值重新賦值等問題。

PHP – Include 與 Require

PHP 中的require關鍵字與include關鍵字非常相似。兩者之間的區別在於,在失敗時,require將產生一個致命錯誤(E_COMPILE_ERROR 級別)。

換句話說,require將停止指令碼,而 include 僅發出警告(E_WARNING),這允許指令碼繼續執行。

require_once 關鍵字

“require_once”關鍵字類似於require,但有一個細微的差別。如果您使用“require_once”,則 PHP 將檢查檔案是否已被包含,如果是,則不會再次包含相同的檔案。

廣告