PHP 包含文件
在我們實際的生產(chǎn)工作中,當構建一個較大的系統(tǒng)時,總有一些內(nèi)容是需要重復使用的, 如一些常用的函數(shù),或者一些公共 html 元素如菜單,頁腳等。我們可以把這些公共的內(nèi)容集中寫入一些文件內(nèi), 然后再根據(jù)具體情況,在需要的地方包含進來,這樣可以節(jié)約大量的開發(fā)時間,使代碼文件統(tǒng)一簡練,以利于更好的維護。
在PHP中, 有require、require_once、include、include- once四種方法包含一個文件。
函數(shù) 包含失敗 特點
Inlcude 返回一條警告 文件繼續(xù)向下執(zhí)行。通常用于動態(tài)包含
Require 一個致命的錯 代碼就不會繼續(xù)向下執(zhí)行。通常包含極為重要的文件,整個代碼甭想執(zhí)行
Include_once 返回一條警告 除了原有include的功能以外,它還會做once檢測,如果文件曾經(jīng)已經(jīng)被被包含過,不再包含
Require_once 一個致命的錯 除了原的功能一外,會做一次once檢測,防止文件反復被包含
PHP include 和 require 語句
在 PHP 中,您可以在服務器執(zhí)行 PHP 文件之前在該文件中插入一個文件的內(nèi)容。
include 和 require 語句用于在執(zhí)行流中插入寫在其他文件中的有用的代碼。
include 和 require 除了處理錯誤的方式不同之外,在其他方面都是相同的:
require 生成一個致命錯誤(E_COMPILE_ERROR),在錯誤發(fā)生后腳本會停止執(zhí)行。
include 生成一個警告(E_WARNING),在錯誤發(fā)生后腳本會繼續(xù)執(zhí)行。
因此,如果您希望繼續(xù)執(zhí)行,并向用戶輸出結果,即使包含文件已丟失,那么請使用 include。 否則,在框架、CMS 或者復雜的 PHP 應用程序編程中,請始終使用 require 向執(zhí)行流引用關鍵文件。 這有助于提高應用程序的安全性和完整性,在某個關鍵文件意外丟失的情況下。
包含文件省去了大量的工作。這意味著您可以為所有網(wǎng)頁創(chuàng)建標準頁頭、頁腳或者菜單文件。 然后,在頁頭需要更新時,您只需更新這個頁頭包含文件即可。
語法
include 'filename';
或者
require 'filename';
基礎實例
假設您有一個標準的頁頭文件,名為 "header.php"。如需在頁面中引用這個頁頭文件,請使用 include/require:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <?php include 'header.php'; ?> <h1>歡迎來到我的主頁!</h1> <p>一些文本。</p> </body> </html>
實例 2
假設我們有一個在所有頁面中使用的標準菜單文件。
"menu.php":
echo '<a href="/">主頁</a>
<a href="/html">HTML 教程</a>
<a href="/php">PHP 教程</a>';
網(wǎng)站中的所有頁面均應引用該菜單文件。以下是具體的做法:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <div class="leftmenu"> <?php include 'menu.php'; ?> </div> <h1>歡迎來到我的主頁!</h1> <p>一些文本。</p> </body> </html>
實例 3
假設我們有一個定義變量的包含文件("vars.php"):
<?php $color='red'; $car='BMW'; ?>
這些變量可用在調(diào)用文件中:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <h1>歡迎來到我的主頁!</h1> <?php include 'vars.php'; echo "I have a $color $car"; // 輸出 I have a red BMW ?> </body> </html>
實例 4
創(chuàng)建一個file.php文件:
<?php $word = "你好!"; ?>
然后在另外的文件如 test.php 中包含它(兩個文件在同一目錄):
<?php echo "包含內(nèi)容為:".$word."<br />"; include("file.php"); echo "包含內(nèi)容為:".$word; ?>
運行 test.php 輸出如下:
包含內(nèi)容為:
包含內(nèi)容為:你好!
include() 與 require() 的區(qū)別
require() 語句也可用于文件的包含,在使用上等同于 include() 。 但二者也有一些細微差別,可以視實際情況采用 include() 還是 require() 。
二者區(qū)別如下:
當包含的文件不存在時(包含發(fā)生錯誤),如果使用 require() ,則程序立刻停止執(zhí)行, 而使用 include() 的話,系統(tǒng)除了提示錯誤外,下面的程序內(nèi)容還會繼續(xù)執(zhí)行。 大多情況下推薦使用 require() 函數(shù),以避免在錯誤引用發(fā)生后的程序繼續(xù)執(zhí)行
不管 require() 語句是否執(zhí)行,程序執(zhí)行包含文件都被加入進來, include() 只有執(zhí)行的時候文件才會被包含。所以如果是有條件判斷的情況下,用 include() 顯然更合適
使用 require() 多次引用時,只執(zhí)行一次對被引用文件的引用動作,而 include() 則每次都要進行讀取和評估后引用文件
once
include和require分別對應了一個once函數(shù):include_once 和 require_once
函數(shù)的功能沒有什么差異,主要的作用是避免重復包含