include() ステートメントは、指定されたファイルをインクルードして実行します。
次のドキュメントは require() にも適用されます。 2 つの構造は、障害の処理方法を除いて同一です。 include() は警告を生成し、require() は致命的なエラーを引き起こします。つまり、ファイルが見つからない場合にページの処理を停止したい場合は、require() を使用します。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。
ファイルがインクルードされると、そのファイルに含まれるコードはインクルード行の変数スコープを継承します。その時点から、呼び出し側ファイルのその行で使用可能な変数は、呼び出されたファイルでも使用できるようになります。
基本的な include() の例
vars.php <?php $color = 'green'; $fruit = 'apple'; ?> test.php <?php echo "A $color $fruit"; // A include 'vars.php'; echo "A $color $fruit"; // A green apple ?>
include が呼び出し元ファイルの関数内にある場合、呼び出されたファイルに含まれるすべてのコードは、その関数内で定義されているかのように動作します。したがって、その関数の変数スコープに従います。
関数にインクルード
<?php function foo() { global $color; include 'vars.php'; 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, 'Works' here means that the variables * * $foo and $bar are available within the included file. */ // Won't work; file.txt wasn't handled by www.example.com as PHP include 'http://www.example.com/file.txt?foo=1&bar=2'; // Won't work; looks for a file named 'file.php?foo=1&bar=2' on the // local filesystem. 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() は特殊な言語構造であるため、条件付きステートメントで使用する場合はステートメント グループ (中括弧内) に配置する必要があります。
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 = 'PHP'; return $var; ?> noreturn.php <?php $var = 'PHP'; ?> testreturns.php <?php $foo = include 'return.php'; echo $foo; // prints 'PHP' $bar = include 'noreturn.php'; echo $bar; // prints 1 ?>
$bar の値は 1 です。上記の例の違いに注意してください。 1 つ目はインクルードされたファイルで return() を使用し、もう 1 つは使用しません。ファイルを変数に「含める」他の方法としては、fopen()、file()、または include() を出力制御関数と組み合わせて使用する方法があります。
注: これは関数ではなく言語構造であるため、「変数関数」から呼び出すことはできません。
以上がPHPでのinclude()の使用テクニックの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。