包含文件
PHP include 和 require 語(yǔ)句
可以使用 include
或 require
語(yǔ)句將一個(gè) PHP 文件的內(nèi)容插入到另一個(gè) PHP 文件中(在服務(wù)器執(zhí)行它之前)。
include
和 require
語(yǔ)句是相同的,除了在失敗時(shí):
require
將產(chǎn)生致命錯(cuò)誤(E_COMPILE_ERROR)并停止腳本include
僅會(huì)產(chǎn)生警告(E_WARNING),并且腳本會(huì)繼續(xù)
因此,即使包含文件丟失,如果您希望執(zhí)行繼續(xù)并向用戶顯示輸出,可請(qǐng)使用 include
語(yǔ)句。否則,在 Framework、CMS 或復(fù)雜的 PHP 應(yīng)用程序編碼中,始終使用 require
語(yǔ)句將關(guān)鍵文件包含到執(zhí)行流中。這將有助于避免在關(guān)鍵文件意外丟失時(shí)損害應(yīng)用程序的安全性和完整性。
包含文件可以節(jié)省大量工作。這意味著您可以為所有網(wǎng)頁(yè)創(chuàng)建一個(gè)標(biāo)準(zhǔn)的頁(yè)眉、頁(yè)腳或菜單文件。然后,當(dāng)需要更新頁(yè)眉時(shí),您只需更新頁(yè)眉包含文件。
語(yǔ)法
include 'filename';
或者:
require 'filename';
PHP include 實(shí)例
例子 1
假設(shè)我們有一個(gè)名為 "footer.php" 的標(biāo)準(zhǔn)頁(yè)腳文件,如下所示:
<?php echo "<p>Copyright © 1999-" . date("Y") . " w3school.com.cn</p>"; ?>
要在頁(yè)面中包含頁(yè)腳文件,請(qǐng)使用 include
語(yǔ)句:
<html> <body> <h1>Welcome to my home page!</h1> <p>Some text.</p> <p>Some more text.</p> <?php include 'footer.php';?> </body> </html>
運(yùn)行實(shí)例
例子 2
假設(shè)我們有一個(gè)名為 "menu.php" 的標(biāo)準(zhǔn)菜單文件:
<?php echo '<a href="/default.asp">首頁(yè)</a> - <a href="/html/default.asp">HTML 教程</a> - <a href="/css/default.asp">CSS 教程</a> - <a href="/js/default.asp">JavaScript 教程</a> - <a href="default.asp">PHP 教程</a>'; ?>
網(wǎng)站中的所有頁(yè)面都應(yīng)使用此菜單文件。下面展示了如何完成(我們使用 <div> 元素,以便稍后可以使用 CSS 輕松設(shè)置菜單樣式):
<html> <body> <div class="menu"> <?php include 'menu.php';?> </div> <h1>Welcome to my home page!</h1> <p>Some text.</p> <p>Some more text.</p> </body> </html>
運(yùn)行實(shí)例
例子 3
假設(shè)我們有一個(gè)名為 "vars.php" 的文件,其中定義了一些變量:
<?php $color='red'; $car='BMW'; ?>
然后,如果我們包含 "vars.php" 文件,則可以在調(diào)用文件中使用這些變量:
<html> <body> <h1>Welcome to my home page!</h1> <?php include 'vars.php'; echo "I have a $color $car."; ?> </body> </html>
運(yùn)行實(shí)例
PHP include 與 require
require
語(yǔ)句也用于在 PHP 代碼中包含一個(gè)文件。
但是,include
和 require
之間有一個(gè)很大的區(qū)別;當(dāng)使用 include
語(yǔ)句包含文件而 PHP 無(wú)法找到它時(shí),腳本將繼續(xù)執(zhí)行:
實(shí)例
<html> <body> <h1>Welcome to my home page!</h1> <?php include 'noFileExists.php'; echo "I have a $color $car."; ?> </body> </html>
運(yùn)行實(shí)例
如果我們使用 require
語(yǔ)句執(zhí)行相同的例子,則不會(huì)執(zhí)行 echo
語(yǔ)句,因?yàn)槟_本執(zhí)行在 require
語(yǔ)句返回致命錯(cuò)誤后終止:
實(shí)例
<html> <body> <h1>Welcome to my home page!</h1> <?php require 'noFileExists.php'; echo "I have a $color $car."; ?> </body> </html>
運(yùn)行實(shí)例
當(dāng)文件被應(yīng)用程序需要時(shí),請(qǐng)使用 require
。
當(dāng)文件不是必需的,且文件未找到時(shí)應(yīng)用程序應(yīng)繼續(xù)時(shí),請(qǐng)使用 include
。