phpファイルには関数が含まれ...LOGIN

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 が次のエラーを報告したことがわかります:

QQ截图20161114112303.png

上の図のプロンプトは、関数 demo() を再定義できないことを意味します。

関数定義の章で、関数は 2 回定義できないと述べました。定義しないとエラーが報告されます。 function.php を 2 回インクルードしたため、2 回実行されてしまい、このエラーが報告されました。

include_once がエラーを報告しない理由は、functions.php が以前にインクルードされ、現在はインクルードされていないことを検出するためです。

require と require_once の関数について、あなたの最も賢い小さな頭を使って推測できるでしょうか? require_once には 2 つの特徴があります:

1. を含むファイルが存在する必要があります。存在しない場合は実行が停止します

2. 包含チェックが繰り返し実行されます

QQ图片20161114112544.gif

次のセクション
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include_once 'functions.php'; include_once 'functions.php'; //可以直接调用 demo(); test(); ?>
コースウェア