English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、PHPでファイルを含め、評価する方法を学びます。
include()とrequire()文を使うことで、PHPファイル内のコードを別のPHPファイルに含めることができます。含まれるファイルは、指定されたファイルのスクリプトをコピーしてその位置に貼り付けた場合と同じ結果が得られます。
ファイルを含めることで、多くの時間を節約できます}}-コードブロックを単独のファイルに保存し、include()とrequire()文を使用して必要な場所に含めることで、コードを繰り返し入力する必要がありません。典型的な例として、すべてのウェブページにヘッダー、フッターおよびメニューのファイルを含めることが挙げられます。
include() 和 require() 文の基本的な構文は以下のように示されます:
include("path/to/filename"); 或 include "path/to/filename"; require("path/to/filename"); 或 require "path/to/filename";
ヒント:print と echo 文と同様に、include と require 文を使用する際には、括弧を省略できます(前述の通り)。
以下の例では、すべてのウェブページに「header.php」、「footer.php」および「menu.php」として分離して保存されている一般的なヘッダー、フッターおよびメニューのコードをどのように含めるかを示します。この技術を使用すると、1つのファイルを変更するだけで、ウェブサイトのすべてのページを即座に更新できるため、大量の重複作業を節約できます。
<!DOCTYPE html> <html> <head> <title>基礎チュートリアル</title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>ようこそ私たちのウェブサイト(www.w)にご訪問ください3codebox.com)!</h1> <p>在这里,您会发现很多有用的信息。</p> <?php include "footer.php"; ?> </html>
include()文でファイルを含めることができるなら、なぜrequire()が必要なのか、と考えているかもしれません。通常、require()文の動作はinclude()文に似ています。
ユニークな違いは、— include()文はPHPの警告のみを生成し、ファイルが見つからない場合でもスクリプトが続行可能ですが、require()文は致命的なエラーを生成し、スクリプトの実行を停止します。
<?php require "my_variables.php"; ?> <?php require "my_functions.php"; ?> <!DOCTYPE html> <html> <head> <title><?php displayTitle($home_page); ?></title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>ようこそ私たちのウェブサイト(www.w)にご訪問ください3codebox.com)!</h1> <p>在这里,您会发现很多有用的信息。</p> <?php include "footer.php"; ?> </html>
注意:如果包含库文件或包含运行应用程序所必需的函数和配置变量的文件(如数据库配置文件),建议使用 require()语句。
如果不小心在代码中使用 include 或 require 语句多次包含同一文件(通常是函数或类文件) ,可能会导致冲突。为了防止这种情况,PHP 提供了 include_once 和 require_once 语句。这些语句的行为方式与 include 和 require 语句相同,只有一个例外:
即使再次包含该文件,include_once和require_once语句也将只包含该文件一次,也就是说,如果指定的文件已包含在前一个语句中,则不会再次包含该文件。为了更好地理解它是如何工作的,我们来看一个示例。 假设我们有一个“ my_functions.php”文件,其代码如下:
<?php function multiplySelf($var){ $var *= $var; //将变量自身相乘 echo $var; } ?>
这是PHP脚本,其中包含“ my_functions.php”文件。
<?php //包含文件 require "my_functions.php"; // 调用函数 multiplySelf(2); // 输出: 4 echo "<br>"; //再次包含该文件 require "my_functions.php"; // 调用函数 multiplySelf(5); // Doesn't execute ?>
当您运行上面的脚本时,您将看到类似以下的错误消息:“Fatal error: Cannot redeclare multiplySelf()”。发生这种情况的原因是'my_functions.php'被两次包含,这意味着该函数multiplySelf()被定义了两次,这导致PHP停止脚本执行并生成致命错误。现在,用require_once重写上面的示例。
<?php // Including file require_once "my_functions.php"; // 调用函数 multiplySelf(2); // 输出: 4 echo "<br>"; //再次包含该文件 require_once "my_functions.php"; // 调用函数 multiplySelf(5); // 输出: 25 ?>
正如您看到的,通过使用require_once代替require,脚本可以按预期工作。