最初に言っておきたいのは、include、include_once、require、require_once のコア関数はすべて、ターゲット Web ページのコードを直接コピーするのと同じであるということです。
基本的に、パフォーマンスを考慮しない場合、include、include_once、require、require_once を使用することで基本的な効果を達成できます。基本的には好きなように使ってください。
小さな違いは次のとおりです:
たとえば、1.php には簡単な print ステートメントがあります:
<?php echo "1" ?>
<?php include '1.php'; require '1.php'; include_once '1.php'; require_once '1.php'; ?>
次のように書かれた場合:
<?php include_once '1.php'; require_once '1.php'; include '1.php'; require '1.php'; ?>
_once は以前に導入されたものは今後導入されないことを意味しますが、このステートメントはインポートされた Web ページのコードが同じであるかどうかをチェックしないことに注意してください。たとえば、まったく同じコードを持つ 2 つの Web ページがあります。同じコード、untitled.html と untitled1.html です。すべて:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" c/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> </body> </html>
<?php include_once 'untitled.html'; include_once 'untitled1.html'; ?>
同じ部分が 2 回出現することを確認します。 _once は、ファイル名が以前に導入されたかどうかを判断するためにのみ使用されます。
そのため、_once では、同じリソースが異なる名前で複数回導入される現象を防ぐことはできません。
インポートされたファイルを処理するさまざまな方法に加えて、include と require の最大の違いは、include は存在しないファイルを導入するときに警告を生成し、スクリプトは引き続き実行されますが、require は致命的なエラーを引き起こし、スクリプトは実行を停止します。
たとえば、a.php が存在しない場合でも、次のコードは b:
<?php include 'a.php'; echo 'b'; ?>
<?php require 'a.php'; echo 'b'; ?>
以下の違いもあります:
include() は条件付き包含関数ですが、require() は無条件包含関数です。
if(FALSE){ include 'file.php'; //file.php不会被引入 } if(FALSE){ require 'file.php'; //file.php将会被引入 }
$retVal = include(’somefile.php’); if(!empty($retVal)){ echo “文件包含成功”; }else{ echo “文件包含失败”; }
include() の実行時に参照する必要があるファイルは、毎回読み込んで評価する必要があります。 require() の実行時に参照する必要があるファイルは、実際には 1 回だけ処理されます。これらの命令のいずれかを含むコードや複数回実行される可能性のあるコードがある場合は、require() ステートメントを使用する方が効率的であることがわかります。ファイルはコードが実行されるたびに読み取られます。ループするには、include() を使用します。
require は通常、PHP プログラムの先頭に配置され、PHP プログラムが実行される前に、まず require で指定されたファイルを読み込み、それを PHP プログラムの Web ページの一部にします。このようにして、よく使われる機能を Web ページに導入することもできます。通常は include メソッドが使用され、この関数は通常プロセス制御の処理部分に配置されます。 PHP プログラムの Web ページは、インクルード ファイルを読み取るときにのみ読み取ります。これにより、プログラムの実行処理を簡略化することができる。
また、includeとrequireの後に括弧を付けるかどうかの問題ですが、理論的にはincludeやrequireの後に括弧があっても実行結果に違いはありませんが、括弧を付けると効率が悪くなりますので、括弧が無い場合は後で、括弧を追加しないでください。
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。
上記では、include、include_once、require、require_once の違いを、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人にとって役立つことを願っています。