PHP Include 与 Require 引用文件
1. PHP include 和 require 语句
在 PHP 中,通过使用 include 或 require 语句,可以将一个 PHP 文件的内容插入到另一个 PHP 文件中(在服务器执行该文件之前)。
include 和 require 语句除了在处理失败后的表现不同外,在其他方面都是完全相同的:
- require 会生成致命错误(E_COMPILE_ERROR)并停止脚本运行。
- include 只生成警告(E_WARNING),脚本将继续执行。
因此,如果您希望在文件缺失时停止执行并向用户显示错误,请使用 require。如果您希望继续执行脚本并输出结果(即使文件缺失),请使用 include。
1.1 基础语法
include 'filename';
// 或者
require 'filename';2. PHP include 示例
通过文件引用功能,可以轻松地在网站的多个页面中共享相同的 HTML 布局、页眉、页脚或函数。
2.1 示例 1:页脚文件
假设我们有一个名为 "footer.php" 的标准页脚文件,内容如下:
<?php
echo "<p>Copyright © 2006-" . date("Y") . " Begindev.com</p>";
?>要在页面中引用此页脚,请使用 include 语句:
<html>
<body>
<h1>欢迎来到我的主页!</h1>
<p>一些文本内容。</p>
<p>更多文本内容。</p>
<?php include 'footer.php';?>
</body>
</html>2.2 示例 2:菜单文件
假设我们有一个名为 "menu.php" 的标准菜单文件:
<?php
echo '<a href="/default.asp">首页</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>';
?>网站中的所有页面都应使用此菜单。以下是具体的实现方式:
<html>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h1>欢迎来到我的主页!</h1>
<p>一些文本内容。</p>
</body>
</html>2.3 示例 3:变量引用
假设我们有一个名为 "vars.php" 的文件,其中定义了一些变量:
<?php
$color='red';
$car='BMW';
?>即使文件是在主页面之外定义的,引用后也可以直接在主页面中使用这些变量:
<html>
<body>
<h1>欢迎来到我的主页!</h1>
<?php
include 'vars.php';
echo "我有一辆" . $color . "色的" . $car . "。";
?>
</body>
</html>3. PHP include vs. require
require 语句同样用于将文件引用到 PHP 脚本中。
然而,include 与 require 之间有一个巨大的差异:当文件通过 include 语句被引用且 PHP 无法找到它时,脚本将继续执行。
使用 include 的示例:
<html>
<body>
<h1>欢迎来到我的主页!</h1>
<?php
include 'noFileExists.php';
echo "我有一辆" . $color . "色的" . $car . "。";
?>
</body>
</html>在这种情况下,echo 语句仍会执行,因为 include 只会产生警告。
使用 require 的示例:
如果我们在相同的案例中使用 require 语句,echo 语句将不会被执行,因为在文件缺失后脚本执行会立即停止。
<html>
<body>
<h1>欢迎来到我的主页!</h1>
<?php
require 'noFileExists.php';
echo "我有一辆" . $color . "色的" . $car . "。";
?>
</body>
</html>3.1 应该选择哪一个?
建议使用 require 而不是 include。
因为如果脚本在缺少关键文件(如数据库连接文件、核心配置、函数库等)的情况下继续运行,可能会导致安全漏洞或产生不可预知的错误。使用 require 可以确保在关键组件缺失时直接熔断程序,从而保护应用程序的完整性。