[php]include、include_once、require、require_once の違い

WBOY
リリース: 2016-06-23 13:27:57
オリジナル
832 人が閲覧しました

まず最初に言っておきたいのは、include、include_once、require、require_once のコア関数はすべて同じであり、これはターゲット Web ページのコードを直接コピーするのと同等です。

基本的に、パフォーマンスを考慮しない場合、include、include_once、require、require_once を使用することで基本的な効果を達成できます。基本的には好きなように使ってください。

細かい違いは次のとおりです:

たとえば、1.php には簡単な print ステートメントがあります:

<?php echo "1" ?>
ログイン後にコピー

次のプログラムを実行した結果:

<?phpinclude '1.php';require '1.php';include_once '1.php';require_once '1.php';?>
ログイン後にコピー

は 4 ではなく 2 の 1 です。 1s は、 include と require の両方が指定されたファイルを導入するため、 _once はそれらが 1 回だけ導入されること、つまり、以前に導入されたファイルは再度導入されないことを意味します。

次のように書かれた場合:

<?phpinclude_once '1.php';require_once '1.php';include '1.php';require '1.php';?>
ログイン後にコピー

結果は 4 つになります。

_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" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body></body></html>
ログイン後にコピー

次のステートメントがある場合:

<?phpinclude_once 'untitled.html';include_once 'untitled1.html';?>
ログイン後にコピー

結果は次のようになります:


同じ部分が表示されるのを確認してください。 2回。 _once は、ファイル名を使用して、そのファイルが以前に導入されたかどうかを判断するだけです。

そのため、_once では、同じリソースが異なる名前で複数回導入される現象を防ぐことはできません。

インポートされたファイルを処理するさまざまな方法に加えて、include と require の最大の違いは、include は存在しないファイルを導入するときに警告を生成し、スクリプトの実行が継続されるのに対し、require は致命的なエラーを引き起こし、スクリプトは実行を停止します。

たとえば、a.php が存在しない場合でも、次のコードは b:

<?phpinclude 'a.php';echo 'b';?>
ログイン後にコピー
を出力しますが、:

<?phprequire 'a.php';echo 'b';?>
ログイン後にコピー
は出力されません。

以下の違いもあります:

include() は条件付き包含関数ですが、require() は無条件包含関数です

if(FALSE){     include 'file.php'; //file.php不会被引入 } if(FALSE){     require 'file.php'; //file.php将会被引入}
ログイン後にコピー
include には戻り値がありますが、require には戻り値がありません

$retVal = include(’somefile.php’);if(!empty($retVal)){  echo “文件包含成功”;}else{  echo “文件包含失败”;}
ログイン後にコピー
は OK 。

include() の実行中に参照する必要があるファイルは、毎回読み取って評価する必要があります。実際には、require() の実行時に参照する必要があるファイルの内容は 1 回だけ処理されます。実行中に参照する必要がある場合は、 require() ステートメントを置き換えます。これらの命令のいずれかが含まれるコードや、複数回実行される可能性のあるコードがある場合は、 require() を使用する方が効率的であることがわかります。コードが実行されるたびに、または一連のファイルを反復処理するたびに、異なるファイルが読み取られます。ループの場合は、include() を使用します。

require は通常、PHP プログラムの先頭に配置され、PHP プログラムが実行される前に、まず require で指定されたファイルを読み込み、それを PHP プログラムの Web ページの一部にします。このようにして、よく使われる機能を Web ページに導入することもできます。通常、この関数はプロセス制御の処理部分に配置されます。 PHP プログラムの Web ページは、インクルード ファイルを読み取るときにのみ読み取ります。これにより、プログラムの実行処理を簡略化することができる。

また、include や require の後に括弧を付けるかどうかの問題ですが、理論的には include や require の後に括弧があっても実行結果に違いはありませんが、括弧を付けると効率が悪くなりますので、括弧が無い場合には後で、括弧を追加しないでください。

著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート