PHP 基础教程
PHP 高级教程
PHP & MySQL DATABASE
PHP 示例
PHP 参考手册

PHP IncludeRequire 文件

在本教程中,您将学习如何在 PHP 中导入和包含文件。

将 PHP 文件包含到另一个 PHP 文件中

include()require() 语句允许您将 PHP 文件中包含的代码包含在另一个 PHP 文件中。 包含一个文件会产生与从指定文件复制脚本并粘贴到调用它的位置相同的结果。

您可以通过包含文件节省大量时间和工作 — 只需将代码块存储在单独的文件中,然后使用 include()require() 语句将其包含在任何您想要的位置,而不是多次键入整个代码块 . 一个典型的例子是在网站的所有页面中包含页眉、页脚和菜单文件。

include()require() 语句的基本语法可以通过以下方式给出:

include("path/to/filename"); -Or- include "path/to/filename";
require("path/to/filename"); -Or- require "path/to/filename";

提示:printecho 语句一样,您可以在使用 includerequire 语句时省略括号,如上所示。

以下示例将向您展示如何在您网站的所有页面中包含分别存储在单独的"header.php"、"footer.php"和"menu.php"文件中的常见页眉、页脚和菜单代码。 使用这种技术,您可以通过对一个文件进行更改来一次更新网站的所有页面,这可以节省大量重复性工作。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Tutorial Republic</title>
</head>
<body>
<?php include "header.asp"; ?>
<?php include "menu.asp"; ?>
    <h1>Welcome to Our Website!</h1>
    <p>Here you will find lots of useful information.</p>
<?php include "footer.asp"; ?>
</body>
</html>

include 和 require 语句之间的区别

您可能会想如果我们可以使用 include() 语句包含文件,那么为什么我们需要 require()。 通常,require() 语句的操作类似于 include()

唯一的区别是 — include() 语句只会生成 PHP 警告,但如果找不到要包含的文件,则允许脚本继续执行,而 require() 语句将 生成致命错误并停止脚本执行。

<?php require "my_variables.php"; ?>
<?php require "my_functions.asp"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title><?php displayTitle($home_page); ?></title>
</head>
<body>
<?php include "header.asp"; ?>
<?php include "menu.asp"; ?>
    <h1>Welcome to Our Website!</h1>
    <p>Here you will find lots of useful information.</p>
<?php include "footer.asp"; ?>
</body>
</html>

提示:如果您包含库文件或包含运行应用程序所必需的函数和配置变量的文件,建议使用 require() 语句, 如数据库配置文件


include_once 和 require_once 语句

如果您不小心在代码中使用 includerequire 语句多次包含同一个文件(通常是 函数 文件),则可能会导致冲突。 为了防止这种情况发生,PHP 提供了 include_oncerequire_once 语句。 这些语句的行为方式与 includerequire 语句相同,但有一个例外。

include_oncerequire_once 语句将只包含一次文件,即使要求第二次包含该文件,即如果指定的文件已包含在先前的语句中,则该文件 不再包括在内。 为了更好地理解它是如何工作的,让我们看一个例子。 假设我们有一个带有以下代码的"my_functions.asp"文件:

<?php
function multiplySelf($var){
    $var *= $var; // 变量自身相乘
    echo $var;
}
?>

这是我们在其中包含"my_functions.php"文件的 PHP 脚本。

<?php
// 包含文件
require "my_functions.php";
// 调用函数
multiplySelf(2); // Output: 4
echo "<br>";
 
// 再次包含文件
require "my_functions.php";
// 调用函数
multiplySelf(5); // Doesn't execute
?>

当你运行上面的脚本时,你会看到类似这样的错误信息:"Fatal error: Cannot redeclare multiplySelf()"。 出现这种情况是因为 'my_functions.php' 包含两次,这意味着函数 a1 被定义了两次,导致 PHP 停止脚本执行并产生致命错误。 现在用 require_once 重写上面的例子。

<?php
// 包含文件
require_once "my_functions.php";
// 调用函数
multiplySelf(2); // Output: 4
echo "<br>";
 
// 再次包含文件
require_once "my_functions.php";
// 调用函数
multiplySelf(5); // Output: 25
?>

如您所见,通过使用 require_once 而不是 require,脚本可以按预期工作。

Advertisements