ホームページ  >  記事  >  バックエンド開発  >  PHP の include() と require() の違いは何ですか?

PHP の include() と require() の違いは何ですか?

WBOY
WBOYオリジナル
2016-07-25 08:57:391119ブラウズ
  1. if($something){
  2. include("somefile");
  3. }
コードをコピー

ただし、$something の値が何であっても、次のコードにはファイル somefile がインクルードされます。ファイルに:

  1. if($something){
  2. require("somefile");
  3. }
コードをコピー

次の興味深い例は、これら 2 つの関数の違いを完全に示しています。

  1. $i = 1;
  2. while ($i < 3) {
  3. require("somefile.$i");
  4. $i++;
  5. }
この段落のコード

をコピーコードでは、プログラムはループするたびに同じファイルをインクルードします。明らかに、これはプログラマーの本来の意図ではありません。コードから、このコードが各ループに異なるファイルを含めることを望んでいることがわかります。この関数を完了したい場合は、関数 include() を使用する必要があります。

  1. $i = 1;
  2. while ($i < 3) {
  3. include("somefile.$i");
  4. $i++;
  5. }
コードをコピー

3、エラー報告方法 たとえば、test1.php と test2.php という名前の 2 つの php ファイルを同じディレクトリに作成しないように注意してください。 テスト.php

  1. include ("test999.php");
  2. echo "abc";
  3. ?>
コードをコピー

test2.php

  1. require ("test999.php")
  2. echo "abc";
  3. ?>
コードをコピー

test999.phpファイルが存在しなかったため、最初のファイルを参照しますfound が見つかると、エラー メッセージが表示され、同時にエラー メッセージの下に abc が表示されます。表示される内容は次のようなものです。 警告: include(test1aaa.php) [function.include]: ストリームを開けませんでした: D:WebSitetest.php の 2 行目にそのようなファイルまたはディレクトリはありません 警告: include() [function.include]: D:WebSitetest.php の 2 行目でインクルード (include_path='.;C:php5pear') するために「test1aaa.php」を開けませんでした ABC

2 番目のファイルを参照します。test999.php ファイルが見つからないため、次のようなエラー メッセージが表示されます。 警告: require(test1aaa.php) [function.require]: ストリームを開けませんでした: D:WebSitetest.php の 2 行目にそのようなファイルまたはディレクトリはありません 致命的なエラー: require() [function.require]: D:WebSitetest.php の 2 行目で、必須の ‘test1aaa.php’ (include_path=’.;C:php5pear’) を開くことができませんでした

概要: include と require の違い: include がファイルを導入するときにエラーが発生すると、プロンプトが表示され、次のコードの実行が続行されます。 require がファイルを導入するときにエラーが発生すると、プロンプトが表示され、以下のコードの実行が停止します。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。