PHPの場合:
require
とinclude
はいつ使用すべきですか?require_once
とinclude_once
はいつ使用すべきですか?require
とinclude_once
もあります。
だからあなたの質問はなるはずです...
require
とinclude
はいつ使用すべきですか?require_once
とrequire
を使うべきですか1に対する答えは ここに と記述されています。
Require()関数はinclude()と同じですが、エラーの処理方法が異なります。エラーが発生した場合、include()関数は警告を生成しますが、スクリプトは実行を続けます。 require()は致命的エラーを起こし、スクリプトは停止します。
2への答えは見つけることができます ここ 。
Require_once()文はrequire()と同じですが、PHPはファイルが既にインクルードされているかどうかをチェックします。
つかいます
必須
ファイルがアプリケーションによって 必須 の場合、例:重要なメッセージテンプレート、またはアプリケーションが壊れることのない設定変数を含むファイル。
require_once
ファイルに後続のインクルード時にエラーが発生するコンテンツが含まれている場合あなたのアプリケーションにはfunction important() { /* important code */}
が絶対に必要ですが、関数を再宣言することはできないので、再び含めるべきではありません。
include ファイルが必要ではなく、見つからなかった場合でもアプリケーションフローを継続する必要がある場合。
現在のスコープまたは何かからの変数を参照するテンプレートに最適
include_once
HTTPオーバーヘッドのために2回は実行したくない、後続のロードまたはリモートファイルの取り込み時にエラーを発生させる可能性があるオプションの依存関係
しかし、基本的に、いつ使うかはあなた次第です。
私の提案は、99.9%の時間でrequire_once
を使用することです。
代わりにrequire
またはinclude
を使用すると、コードが他の場所で再利用できないこと、つまり、実際に引き込むスクリプトがexecuteクラスまたは一部の関数ライブラリをavailableにする代わりにコード。
その場で実行するコードが必要/含まれている場合、それは手続き型コードであり、新しいパラダイムを知るために取得する必要があります。オブジェクト指向プログラミング、関数ベースのプログラミング、または関数型プログラミングと同様。
既にOOまたは関数型プログラミングを行っている場合、include_once
を使用することは、ほとんどの場合delayingになります。 。関数do_cool_stuff()
が後で呼び出されるときに使用できないこと、または使用可能になると予想される瞬間ライブラリが必要ですか?一般的に、必要なものや期待できるものが利用できない場合はすぐに知るのが最善なので、require_once
を使用します。
あるいは、最新のOOPでは、使用時のクラスは autoload だけです。
_once関数と_once関数がない場合の違い:_once関数がない場合 PHP は含まれるファイルを追跡し、1回だけ含めるようになります。
Requireとincludeの違い:必要なファイルが見つからなかった場合 PHP 致命的なエラーが発生しますが、includeの場合は警告のみが発生します。
ファイルをインクルードできない場合、include()
は警告を出しますが、残りのスクリプトは実行されます。
require()
はE_COMPILE_ERROR
を投げ、ファイルをインクルードできない場合はスクリプトを停止します。
include_once()
関数とrequire_once()
関数は、ファイルが既にインクルードされている場合、2回目はそのファイルをインクルードしません。
次のドキュメントページを参照してください。
現在のファイルで呼び出されたファイルが1回だけ必要な場合は、require_once()
を使用して別のファイルを含めることができます。ここの例では、私はtest1.phpを持っています。
<?php
echo "today is:".date("Y-m-d");
?>
そして私がtest2.phpという名前の別のファイルに
<?php
require_once('test1.php');
require_once('test1.php');
?>
mはtest1ファイルが2回必要ですが、ファイルにはtest1が1回含まれているので、2回目の呼び出しでは無視されます。そして停止せずに一度だけ出力を表示します。
現在のファイルで呼ばれたファイルが複数回必要なときは、include_once()を使って別のファイルをインクルードすることができます。この例では、test3.phpという名前のファイルがあります。
<?php
echo "today is:".date("Y-m-d");
?>
そして私がtest4.phpという名前の別のファイルに
<?php
include_once('test3.php');
include_once('test3.php');
?>
test3ファイルを含むmを見ていると、ファイルは1回だけインクルードされますが、それ以降の実行は停止されます。
再利用可能な _ php _ テンプレートには "include"を使用してください。必要なライブラリには "require"を使用してください。
"* _once"はファイルが既にロードされているかどうかをチェックするのでNiceです。しかしそれは "require_once"でしか意味がありません。
違いは、コマンドが生成するエラーです。 require
では、使用したいファイルが本当に必要であるため、見つからない場合はE_ERROR
を生成します。
require()
は、失敗すると致命的なE_ERROR
レベルのエラーも生成することを除けば、include()
と同じです。
include
は失敗した場合にのみE_WARNING
エラーを生成します。
そのため、残りのコードを機能させるためにファイルが必要であり、スクリプトが失敗してファイルが利用できないようにする必要がある場合に使用します。
*_once()
の場合:
スクリプトの特定の実行中に同じファイルが複数回インクルードされ評価される可能性がある場合は、
include_once()
を使用できます。そのため、この場合、関数の再定義、変数値の再割り当てなどの問題を回避できます。
もちろんrequire_once()
についても同様です。
参照: require()
、 include_once()
この質問は7年前に尋ねられたものであり、質問に対する実用的な助けとなる回答はありません。最新のPHPプログラミングでは、主にrequired_once
を使用してオートローダークラス(多くの場合、コンポーザーオートローダー)をインクルードし、すべてのクラスと関数をロードします(関数ファイルを明示的に追加する必要があります) composer.json
ファイルに変更して、他のすべてのファイルで使用できるようにします)。何らかの理由でクラスがオートローダーからロードできない場合は、require_once
を使用してロードします。
最近では、PHPファイルの大きなチャンクを分割するためにのみrequire
を使用しています。これは主に大きな配列定義です。そのような場合は、require_once
ではなくrequire
のみを使用します。
<?php
// arr.php
return ['x'=>'y'];
<?php
//main.php
$arr= require 'arry.php'
使用するファイルに実行可能ファイルが含まれているか、いくつかの変数が宣言されている場合、ほとんどの場合、require
を使用する必要があります。別の場所でrequire_once
を使用すると、コードが実行されず、変数は黙って開始されないため、特定が非常に難しいバグが発生します。
include
とinclude_once
の実際の使用例はありません。
クラスと関数の定義はファイルにまとめておくべきです。
依存関係 (クラス、関数、定数)をロードするにはrequire_once()
を使用してください。
テンプレートライクファイル をロードするにはrequire()
を使用してください。
オプションの依存関係 (クラス、関数、定数)をロードするにはinclude_once()
を使用してください。
オプションのテンプレート風ファイル をロードするにはinclude()
を使用してください。
Requireがファイルが存在しなければならない場合、存在しなければエラーが表示されます。一方include - を使用すると、ファイルが存在しない場合はページの読み込みが続行されます。
承認などの重要な部分を必要とし、その他すべてを含みます。
複数インクルードは非常に悪い設計であり、まったく避けなければなりません。したがって、* _onceは実際には関係ありません。
include()
はファイルが見つからないときに警告を生成しますが、require_once()
は致命的なエラーを生成します。
もう1つのことは、ファイルが以前にインクルードされている場合です。それからrequire_once()
はそれを二度と含みません。
PSR-0 / PSR-4
オートローダの時代には、必要なのがあなたのコードでいくつかの関数/クラスを利用可能にすることだけであれば、ステートメントを使う必要は全くないかもしれません(もちろんrequire_once
する必要があります)テンプレートエンジンとしてPHPを使用している場合は、ブートストラップファイルとinclude
テンプレートにオートローダ自体を追加します。
私は以下の機能を使用していました:
function doSomething() {
require_once(xyz.php);
....
}
Xyz.phpで宣言された定数値がありました。
このdoSomething()関数を別のPHPスクリプトファイルから呼び出す必要があります。
しかし、ループ内でこの関数を呼び出しているときに動作を観察しました。最初の繰り返しdoSomething()はxyz.php
内で定数値を取得していましたが、後で繰り返しdoSomething()
はxyz.php
で宣言された定数値を取得できませんでした。
require_once()
からinclude()
に切り替えることで問題を解決しました。更新されたdoSomething()
コードは次のとおりです。
function doSomething() {
include(xyz.php);
....
}
これで、doSomething()
へのすべての繰り返し呼び出しは、xyz.php
で定義された定数値を取得します。
マニュアルから :
require()
は、失敗すると致命的なE_COMPILE_ERROR
レベルのエラーも生成することを除けば、include()
と同じです。つまり、include()
はスクリプトの続行を許可する警告(E_WARNING
)のみを発行するのに対し、スクリプトは停止します。
_once()
の変種についても同じことが言えます。
いつrequire
またはinclude
を使用する必要がありますか?
require
およびinclude
関数は同じタスクを実行します。つまり、指定されたファイルをインクルードおよび評価しますが、指定されたファイルの場所が無効またはエラーの場合、require
は致命的なエラーを引き起こしますが、include
は警告を生成し、コード実行を続行します。
したがって、インクルードしようとしているファイルがシステムの中心部である場合にrequire
関数を使用でき、残りのコードに大きな影響を与える可能性があり、include
関数を使用できるのは含めようとしているファイルは、重要度の低いコードを含む単純なファイルです。
私の個人的な推奨事項(それほど重要でないコードの場合)は、開発段階にあるコードのあらゆる場所でrequire
関数を使用して、コードをデバッグし、後ですべてのrequire
関数をinclude
関数に置き換えてから実稼働に移行することですバグを見逃しても、エンドユーザーには影響せず、残りのコードは適切に実行されます...
いつrequire_once
またはrequire
を使用する必要がありますか?
require
とrequire_once
の基本的な違いは、require_once
は、ファイルが既に含まれているかどうかをチェックし、既に含まれている場合はファイルを含めないのに対し、require
関数はファイルを含めますファイルがすでに含まれているかどうか。
そのため、コードの一部を繰り返し含める場合はrequire
関数を使用しますが、コードにコードを1回だけ含めたい場合はrequire_once
を使用します。
クラス、関数、または依存関係をロードする必要がある場合は、 require functionを使用します。
テンプレートスタイルのファイルをロードしたい場合は include functionを使用します。
まだ混乱している場合は、 require_once を常に使用してください。
それらはすべてファイルをインクルードする方法です。
必要というのはそれが必要だということです。 Require_onceはそれがそれを必要とすることを意味しますが一度だけそれを要求します。インクルードはファイルをインクルードすることを意味しますが、続行する必要はありません。
例:
Require 'filename'
Require_once 'filename'
Include 'filename'
ファイルを1回インクルードするinclude_once関数もあります。
Include_once 'filename'
携帯電話から入力するときに、大文字を使用しないでください。
気付いたことの1つは、includeを使用するとき、それをインクルードしたファイルからインクルードファイル関数にしかアクセスできないことです。 require_onceを使えば、2番目のrequired_onceファイルでその関数を実行できます。
も:追加をお勧めします
if(file_exists($RequiredFile)){
require_once($RequiredFile);
}else{
die('Error: File Does Not Exist');
}
Require_onceがページを殺したとき、それは時々あなたのウェブサイトファイルのディレクトリをエコーすることができるので
基本的に、間違ったパスが必要な場合、PHPは致命的エラーをスローし、shutdown関数が呼び出されますが、誤ったパスを含めるとPHPは実行を継続しますが、ファイルが存在しないという警告を表示します。
英語の単語から require 、PHPは、ページまたはファイルの実行が必要なファイルに依存することを伝えています。
私の経験からすると、構成ファイル、データベースクラス、その他の重要なユーティリティなどの重要なファイルが必要になるのが普通です。