ホームページ  >  記事  >  バックエンド開発  >  PHPでのinclude()の使用テクニックの詳細な説明

PHPでのinclude()の使用テクニックの詳細な説明

黄舟
黄舟オリジナル
2017-06-25 11:05:313994ブラウズ


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

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

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

基本的な include() の例

vars.php
<?php
$color = &#39;green&#39;;
$fruit = &#39;apple&#39;;
?>
test.php
<?php
echo "A $color $fruit"; // A
include &#39;vars.php&#39;;
echo "A $color $fruit"; // A green apple
?>

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

関数にインクルード

<?php
function foo()
{
   global $color;
   include &#39;vars.php&#39;;
   echo "A $color $fruit";
}
/* vars.php is in the scope of foo() so    *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                              */
foo();                    // A green apple
echo "A $color $fruit";  // A green
?>


ファイルがインクルードされると、パーサーはターゲット ファイルの先頭で PHP モードを終了し、HTML モードに入り、ファイルの末尾で再開します。このため、PHP コードとして実行されるオブジェクト ファイル内のコードは、有効な PHP 開始タグと終了タグ内に含める必要があります。

「URL fopen ラッパー」が PHP でアクティブ化されている場合 (デフォルト設定)、ローカル ファイルの代わりに URL (HTTP またはその他のサポートされているラッピング プロトコル経由 - サポートされているプロトコルについては付録 L を参照) を使用して、含めるファイルを指定できます。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合は、HTTP GET の URL リクエスト String を使用して、インクルードされたファイルに変数を渡すことができます。厳密に言うと、これはファイルをインクルードして親ファイルの変数スペースを継承することと同じではありません。スクリプト ファイルは実際にはリモート サーバー上で実行され、ローカル スクリプトにはその結果がインクルードされます。

警告

バージョン 4.3.0 より前の Windows バージョンの PHP は、allow_url_fopen オプションがアクティブ化されている場合でも、この関数の リモート ファイル アクセスをサポートしません。

HTTP 経由の include()

<?php
/* This example assumes that www.example.com is configured to parse .php *
 * files and not .txt files. Also, &#39;Works&#39; here means that the variables *
 * $foo and $bar are available within the included file.                */
// Won&#39;t work; file.txt wasn&#39;t handled by www.example.com as PHP
include &#39;http://www.example.com/file.txt?foo=1&bar=2&#39;;
// Won&#39;t work; looks for a file named &#39;file.php?foo=1&bar=2&#39; on the
// local filesystem.
include &#39;file.php?foo=1&bar=2&#39;;
// Works.
include &#39;http://www.example.com/file.php?foo=1&bar=2&#39;;
$foo = 1;
$bar = 2;
include &#39;file.txt&#39;;  // Works.
include &#39;file.php&#39;;  // Works.
?>

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

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

include() および条件ステートメント グループ

<?php
// This is WRONG and will not work as desired.
if ($condition)
   include $file;
else
   include $other;
// This is CORRECT.
if ($condition) {
   include $file;
} else {
   include $other;
}
?>


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

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

include() ステートメントと return() ステートメント

return.php
<?php
$var = &#39;PHP&#39;;
return $var;
?>
noreturn.php
<?php
$var = &#39;PHP&#39;;
?>
testreturns.php
<?php
$foo = include &#39;return.php&#39;;
echo $foo; // prints &#39;PHP&#39;
$bar = include &#39;noreturn.php&#39;;
echo $bar; // prints 1
?>


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

注: これは関数ではなく言語構造であるため、「変数関数」から呼び出すことはできません。

以上がPHPでのinclude()の使用テクニックの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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