PHP 開発の基本チュートリアル ファイルには次のものが含まれます
1. ファイルインクルードの概要
実際の開発では、プログラム內(nèi)の共通コードをファイルに入れる必要がある場(chǎng)合が多く、これらのコードを使用するファイルはこのファイルをインクルードするだけで済みます。この方法はコードの再利用性を向上させ、コードの作成とメンテナンスに大きな利便性をもたらします。 PHP には、ファイルをインクルードするためのメソッドとして、require、require_once、include、および include-once の 4 つがあります。
それらの違いを比較してみましょう:
注:
1. 検出作業(yè)を行うためにより多くのリソースを消費(fèi)するため、_once を 1 回少なく使用します。
2番目と4つのメソッド関數(shù)の紹介
注: 學(xué)生はテストのためにコードをローカルにコピーすることをお?jiǎng)幛幛筏蓼?/strong>
1.phpファイルを作成し、その中に2つの関數(shù)を記述します:
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
上記の php ファイルと同じディレクトリに、1.php ファイルをインクルードする別の 2.php ファイルを作成しました。このようにして、関數(shù)を 1.php に具體的に配置できます。これらの関數(shù)が必要な場(chǎng)合は、そこからインクルードします。
<?php include '1.php'; //可以直接調(diào)用 demo(); test(); ?>
上記の例で include の関數(shù)を理解しました。次に、include と require を比較します。
コードでは、最初に include を使用して存在しない test.php ファイルを組み込みます。
<?php include '1.php'; include 'test.php'; //可以直接調(diào)用 demo(); test(); ?>
ローカル出力結(jié)果:
次に、require を使用して非存在の test.php ファイルを組み込みます。存在するテスト.php ファイル:
上記の例の比較により、次のことがわかりました:
test.php ファイルに include が含まれていない場(chǎng)合、デモの実行を続行するように警告が発行されます。 ) および test() 関數(shù)。
そして、require はエラーを直接報(bào)告し、demo() 関數(shù)と test() 関數(shù)は実行を続行できません。
表からわかること: include と include_once の違いは、繰り返しインクルードされるかどうかを検出することです。 include_once が繰り返しインクルードされると、対応するファイルはインクルードされなくなりますが、include はこれを気にしません。ファイルがインポートされているかどうかに関係なく、再度インポートしてください。
今、同じ 2.php を試してみましょう。include と include_once をそれぞれ使用して、functions.php を 2 回インクルードします。
上の図のプロンプトは、関數(shù)demo()を再定義できないことを示しています。関數(shù)定義の章で、関數(shù)は 2 回定義できないと述べました。定義しないとエラーが報(bào)告されます。 3_1.phpを2回インクルードしたため、2回実行されてしまい、このエラーが報(bào)告されました。
include_once がエラーを報(bào)告しない理由は、functions.php が以前にインクルードされ、現(xiàn)在はインクルードされていないことを検出するためです。
require と require_once の関數(shù)について、あなたの最も賢い小さな頭を使って推測(cè)できるでしょうか? require_once には 2 つの特徴があります:
1. インクルードされたファイルが存在する必要があります。そうでない場(chǎng)合は実行が停止します
新しい學(xué)習(xí):
include ではエラー警告が発生しますが、実行は続行されます。 Require はエラーが発生すると警告を発し、それ以上実行されません。include と include_once の違いは、繰り返しインクルードされるかどうかを検出することです。 include_once が繰り返しインクルードされると、対応するファイルはインクルードされなくなりますが、include はこれを気にしません。