ホームページ  >  記事  >  バックエンド開発  >  php include と require_PHP の違いチュートリアル

php include と require_PHP の違いチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:44:51800ブラウズ

include()

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

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

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

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

vars.php

$color = '緑';

$fruit = 'リンゴ';

?>

test.php

echo "A $color $fruit" // A

;

「vars.php」をインクルードします;

echo "A $color $fruit" // 緑のリンゴ

;

?>

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

例 12-4. 関数にインクルードします

関数 foo()

{

グローバル $color;

「vars.php」をインクルードします;

echo "$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 が .php を解析するように設定されていることを前提としています *

また、ここでの「動作」とは、変数 *

を意味します。

* $foo と $bar は、インクルードされたファイル */

内で使用できます。

// 動作しません。file.txt は www.example.com によって PHP として処理されませんでした

'http://www.example.com/file.txt?foo=1&bar=2' を含めます;

// 動作しません。

で 'file.php?foo=1&bar=2' という名前のファイルを探します。

// ローカル ファイルシステム

include 'file.php?foo=1&bar=2';

// 動作します

'http://www.example.com/file.php?foo=1&bar=2' を含めます;

$foo = 1;

$bar = 2;

include 'file.txt' // 動作します

;

include 'file.php' // Works.

;

?>

関連情報については、リモート ファイルの使用、fopen() および file() を参照してください。

include() と require() は特殊な言語構造であるため、条件付きステートメントで使用する場合はステートメント グループ (中括弧内) に配置する必要があります。

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

// これは間違っており、期待どおりに動作しません。

if ($condition)

$file をインクルードします;

それ以外

$other を含める;

// これは正しいです

if ($condition) {

$file をインクルードします;

} その他 {

$other を含める;

}

?>

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

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

例 12-7. include() および return() ステートメント

return.php

$var = 'PHP';

$var を返します;

?>

noreturn.php

$var = 'PHP';

?>

testreturns.php

$foo = 'return.php' を含めます;

echo $foo; // 'PHP' を出力します

$bar = 'noreturn.php' を含めます;

echo $bar; // 1 を出力します

?>

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478721.html技術記事 include() include() ステートメントは、指定されたファイルをインクルードして実行します。 次のドキュメントは require() にも適用されます。 2 つの構造は、障害の処理方法を除いて同一です。 include() は...
を生成します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。