ホームページ > バックエンド開発 > PHPチュートリアル > php include と require_PHP の違いの詳細な分析チュートリアル

php include と require_PHP の違いの詳細な分析チュートリアル

WBOY
リリース: 2016-07-21 15:05:56
オリジナル
971 人が閲覧しました

nclude()
include() ステートメントは、指定されたファイルをインクルードして実行します。

次のドキュメントは require() にも適用されます。 2 つの構造は、障害の処理方法を除いて同一です。 include() は警告を生成し、require() は致命的なエラーを引き起こします。つまり、ファイルが見つからない場合にページの処理を停止したい場合は、require() を使用します。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。

ファイルがインクルードされると、そのファイルに含まれるコードはインクルード行の変数スコープを継承します。その時点から、呼び出し側ファイルのその行で使用可能な変数は、呼び出されたファイルでも使用できるようになります。

例 12-3. 基本的な include() の例
vars.php

コードをコピーします コードは次のとおりです:

$color = 'green';
$fruit = 'apple';
?>

test.php
コードをコピーします コードは次のとおりです:

echo "A $color $fruit "; // A
include 'vars.php';
echo "A $color $fruit"; // 緑のリンゴ
?>

呼び出し元ファイルの関数に include が含まれている場合、すべての関数が呼び出されたファイルに含まれるコードは、関数内で定義されているかのように動作します。したがって、その関数の変数スコープに従います。

例 12-4. 関数にインクルード
コードをコピーします コードは次のとおりです:

function foo()
{
global $color;
include 'vars.php';
echo "A $color $fruit";
}
/* vars.php は foo() のスコープ内にあるため、*
* $fruit はこの *
* スコープの外では使用できません。 color は *
* をグローバルとして宣言したためです。 */
foo(); // 緑のリンゴ
echo "A $color $fruit" // ファイルが含まれている場合、構文 パーサーは、ターゲット ファイルの先頭で PHP モードを終了し、HTML モードに入り、ファイルの末尾で再開します。このため、PHP コードとして実行されるオブジェクト ファイル内のコードはすべて、有効な PHP 開始タグと終了タグに含まれている必要があります。

PHP で「URL fopen ラッパー」が有効になっている場合 (デフォルト構成)、ローカル ファイルの代わりに URL (HTTP 経由) を使用して、含めるファイルを指定できます。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合は、HTTP GET の URL リクエスト文字列を使用して、インクルードされたファイルに変数を渡すことができます。厳密に言うと、これはファイルをインクルードして親ファイルの変数スペースを継承することと同じではありません。スクリプト ファイルは実際にリモート サーバー上で実行され、ローカル スクリプトにはその結果が含まれます。



警告

Windows バージョンの PHP は、allow_url_fopen オプションがアクティブ化されている場合でも、現在この関数のリモート ファイル アクセスをサポートしていません。
例 12-5. HTTP 経由の include()


コードをコピーします
コードは次のとおりです:/* この例では、www.example.com を前提としています。また、ここでの「動作する」とは、含まれるファイル内で変数 *
* $foo と $bar が使用できることを意味します。 */
// は動作しません。 ; ファイル .txt は www.example.com で PHP
include 'http://www.example.com/file.txt?foo=1&bar=2' として処理されませんでした。

// 機能しないようです。
// ローカル ファイルシステム上の 'file.php?foo=1&bar=2' という名前のファイルの場合。
include 'file.php?foo=1&bar=2';

// Works.
include 'http:// www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt'; // Works.
include 'file.php'; // Works.
?>


関連情報については、リモート ファイル、fopen() および file() の使用を参照してください。
include() と require() は特殊な言語構造であるため、条件付きステートメントで使用する場合はステートメント グループ (中括弧内) に配置する必要があります。


例 12-6. include() と条件文グループ



コードをコピーします
コードは次のとおりです:
// これは間違っており、機能しません。 if ($condition)
include $file;
else
include $other;
// これは正しいです。
if ($condition) {
include $file;
} else {
include $other;
}
?> ;


戻り値の処理: インクルードされたファイルで return() ステートメントを使用すると、ファイル内のプログラムの実行を終了し、それを呼び出したスクリプトに戻ることができます。インクルードされたファイルから値を返すことも可能です。 include呼び出しの戻り値は通常の関数と同様に取得できます。

注: PHP 3 では、関数で呼び出さない限り、return をインクルードされたファイルに含めることはできません。この場合、return() はファイル全体ではなく関数に作用します。

例 12-7. include() および return() ステートメント
return.php
コードをコピーします コードは次のとおりです:

$var = ' PHP';
return $var;
?> testreturns.php


コードをコピーします
コードは次のとおりです:$foo = include 'return.php';
echo $foo; // 'PHP'を出力します
$bar = include ' noreturn.php';
echo $bar; // 1を出力します
?>

$barは、includeが正常に実行されたため、値が1になります。上記の例の違いに注意してください。 1 つ目はインクルードされたファイルで return() を使用し、もう 1 つは使用しません。ファイルを変数に「含める」他の方法としては、fopen()、file()、または include() を出力制御関数と組み合わせて使用​​する方法があります。

http://www.bkjia.com/PHPjc/327653.htmlwww.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/327653.html

技術記事

nclude() include() ステートメントは、指定されたファイルをインクルードして実行します。 次のドキュメントは require() にも適用されます。 2 つの構造は、障害の処理方法を除いて同一です。 include() はアラートを生成します...




ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート