ホームページ >バックエンド開発 >PHPチュートリアル >PHP 関数のインポートとファイルのインクルード: include() ステートメントと require() ステートメントの違い

PHP 関数のインポートとファイルのインクルード: include() ステートメントと require() ステートメントの違い

伊谢尔伦
伊谢尔伦オリジナル
2017-05-16 11:53:012560ブラウズ

ファイルに定義されている関数を PHP スクリプトで使用したい場合は、 include()、include_once()、require()、require_once() 関数のいずれかを使用して、関数ライブラリ ファイルをスクリプトプログラム。前の章では、php でカスタム関数ライブラリを使用する方法について説明しました この章では、require() と include() の違いと関係について詳しく説明します。

PHP には、外部ファイルをインクルードするための 2 つのメソッドが用意されています。require() と include() はどちらもサーバーサイド インクルードの一般的なメソッドです。

require require("MyRequireFile.php") のように使用されます。この関数は通常、PHP プログラムの先頭に配置され、PHP プログラムが実行される前に、まず require で指定されたファイルを読み込み、それを PHP プログラムの Web ページの一部にします。このようにして、よく使われる機能を Web ページに導入することもできます。 require がファイルをインクルードする場合、インクルードされたファイルが存在しない場合は致命的なエラーが発生します。また、require 文は以下のスクリプトプログラムと同等です。 another ソース ファイルの内容が完全にこのファイルにコピーされるため、通常は、使用する必要があるパブリック関数ファイルおよびパブリック クラス ファイルを参照するために、ソース ファイルの先頭に配置されます。

include include("MyIncludeFile.php"); などの使用方法。この機能は通常、フロー制御の処理部分に配置されます。 PHP プログラムの Web ページは、インクルード ファイルを読み取るときにのみ読み取ります。これにより、プログラムの実行処理を簡略化することができる。 include にインクルードされるファイルは相対ファイルです。インクルードされるファイルが存在しない場合、警告が生成されますが、以下のスクリプト プログラムは実行を継続します。また、include にインクルードされるファイルは、通常、プログラムの実行中に書き込まれます。

include() と require() の違い

include() と require() の違い これは PHP における最も基本的な質問であると考えられていますが、この 2 つの使い方はまったく同じです。必ずしもどちらかが前と真ん中にある必要はありません。それらの最も基本的な違いは、エラーの処理方法です。

require() : ファイルが存在しない場合、致命的なエラーが報告され、スクリプトは実行を停止します。

include() : ファイルが存在しない場合、警告が表示されますが、スクリプトは続行されます。

php の require() を実行します。パフォーマンスは include() と似ています。違いは、include() の場合は include() が実行されるたびにファイルを読み取って評価する必要があるのに対し、require() の場合はファイルが 1 回だけ処理されることです (実際、ファイルの内容が require() ステートメントに置き換わります)。 。つまり、これらの命令のいずれかが含まれるコードや、複数回実行される可能性のあるコードがある場合は、require() を使用する方が効率的であることを意味します。一方、コードが実行されるたびに異なるファイルを読み取る場合、または一連のファイルを反復処理するループがある場合は、含めるファイルの名前の変数を設定できるため、 include() を使用します。引数が include() の場合、この変数を使用します。

その他の接続と相違点

1. include には戻り値がありますが、require には戻り値がありません。

2. include() は指定されたファイルをインクルードして実行します。処理が失敗すると、インポートされたプログラム コードが実行され、これらのプログラムは実行時にソース ファイルに include() を呼び出します。ステートメントの位置は同じ変数スコープ内にあります。同じサーバーから静的ページをインポートできます。

3. include_once() の関数は include() とほぼ同じです

唯一の違いは、include_once() はインポートされるファイルがプログラム内の他の場所にインポートされているかどうかを最初にチェックすることです。たとえば、インポートするファイルが自分で定義した関数を宣言している場合、このファイルを同じプログラムで繰り返しインポートすると、2 回目のインポートではエラー メッセージが表示されます。 PHP では同じ名前の関数を 2 回宣言することができないため、インポート時に発生します)。

4. require() は対象ファイルの内容を読み取り、処理が失敗した場合は致命的なエラーを引き起こします。

5. include_once() と同様に、require_once() はまず、ターゲット ファイルのコンテンツが以前にインポートされているかどうかを確認します。そうであれば、同じコンテンツは再度インポートされません。

6. require は無条件の包含です。つまり、require がプロセスに追加されると、条件が true であるかどうかに関係なく、require が最初に実行されます。

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

test-include.php と test-require.php という名前の 2 つの php ファイルを同じディレクトリに存在しないように注意してください。 .php。

test-include.php
<?php
include &#39;test1.php&#39;;
echo &#39;abc&#39;;
?>

上記のコードを実行すると、test1.php ファイルが見つからないため、次のようなエラー メッセージが表示されます。

Warning: include(test1.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 3
Warning: include() [function.include]: Failed opening &#39;test1.php&#39; for inclusion (include_path=&#39;.;C:\php5\pear&#39;) in D:\www\test-include.php on line 3
abc
test-require.php
<?php
require &#39;test1.php&#39;;
echo &#39;abc&#39;;
?>

运行上面的代码,因为没有找到test1.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:

Warning: require(test1.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 3
Fatal error: require() [function.require]: Failed opening required &#39;test1&#39; (include_path=&#39;.;C:\php5\pear&#39;) in D:\www\test-require.php on line 3

【相关教程推荐】

1. 《php.cn独孤九贱(4)-php视频教程

2.  视频教程:函数导入与文件包含:include和require的使用

3.  php实战视频教程

以上がPHP 関数のインポートとファイルのインクルード: include() ステートメントと require() ステートメントの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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