phpファイルには関数が含まれています
実際の開発では、プログラム内で共通するコードをファイルに入れる必要がある場合が多く、これらのコードを使用するファイルには、このファイルをインクルードするだけで済みます。この方法はコードの再利用性を向上させ、コードの作成とメンテナンスに大きな利便性をもたらします。 PHP には、ファイルをインクルードするためのメソッドとして、require、require_once、include、および include-once の 4 つがあります。
それらの違いを比較してみましょう:
機能 | 失敗を含む | 機能 |
---|---|---|
Inlcude | 警告を返す | ファイルは下向きに実行を続けます。通常、動的インクルージョンに使用されます |
Require | 致命的なエラー | コードは実行を継続しません。通常、非常に重要なファイルが含まれているため、コード全体を実行しないでください |
Include_once | 警告を返します | 元の include 関数に加えて、ファイルが以前にインクルードされている場合は、一度検出も行います。 |
Require_once | 致命的なエラーが含まれなくなりました | 元の機能 1 に加えて、ファイルが繰り返し含まれるのを防ぐために 1 回の検出が行われます |
注:
1. 検出作業を行うためにより多くのリソースを消費するため、_once を 1 回未満で使用します。
2、超高度な
インクルードがインクルードされるたびに、対応するコードが再度実行されるため、インクルード ファイルをコンパイルする必要があるのは 1 回だけです。インクルードが再度実行されるときに再解析するプロセスを削減する方法。
いくつか実験してみましょう:
1. include には関数の関数が含まれています。
functions.php ファイルを作成し、その中に 2 つの関数を記述します:
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
functions.php と同じディレクトリに、functions.php ファイルをインクルードする user.php ファイルを作成します。このようにして、関数を具体的に function.php に配置することができます。これらの関数を使用する必要がある場合は、そこからインクルードします。
<?php //user.php include 'functions.php'; //可以直接调用 demo(); test(); ?>
上記の例を通じて、 include の関数を理解しました。次に、include と require を比較します。
コードでは、最初に include を使用して存在しない test.php ファイル
<?php //user.php include 'functions.php'; include 'test.php'; //可以直接调用 demo(); test(); ?>
をインクルードし、次に require を使用して存在しない test.php ファイルをインクルードします:
<?php //user.php include 'functions.php'; require 'test.php'; //可以直接调用 demo(); test(); ?>
上記の例を比較すると、次のことがわかりました:
test.php ファイルが存在しない場合、include は警告を発行し、demo() 関数と test() 関数の実行を続行します。
そして、require はエラーを直接報告し、demo() 関数と test() 関数は実行を続行できません。
表からわかること: include と include_once の違いは、繰り返しインクルードされるかどうかを検出することです。 include_once が繰り返しインクルードされると、対応するファイルはインクルードされなくなりますが、include はこれを気にしません。ファイルがインポートされているかどうかに関係なく、再度インポートしてください。
先ほど使用したのと同じ user.php を試してみましょう。include と include_once をそれぞれ使用して、functions.php を 2 回インクルードします:
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include 'functions.php'; include 'functions.php'; //可以直接调用 demo(); test(); ?>
include_once に変更して再試行します:
<?php
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include_once 'functions.php'; include_once 'functions.php'; //可以直接调用 demo(); test(); ?>
Everyone After実行すると、functions.php を今回 2 回導入したときに、-include が次のエラーを報告したことがわかります:
上の図のプロンプトは、関数 demo() を再定義できないことを意味します。
関数定義の章で、関数は 2 回定義できないと述べました。定義しないとエラーが報告されます。 function.php を 2 回インクルードしたため、2 回実行されてしまい、このエラーが報告されました。
include_once がエラーを報告しない理由は、functions.php が以前にインクルードされ、現在はインクルードされていないことを検出するためです。
require と require_once の関数について、あなたの最も賢い小さな頭を使って推測できるでしょうか? require_once には 2 つの特徴があります:
1. を含むファイルが存在する必要があります。存在しない場合は実行が停止します
2. 包含チェックが繰り返し実行されます