PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのinclude_onceステートメントとは?使い方と動作を実例で解説

はじめに

PHPのinclude_onceステートメントは、includeステートメントと同様に、あるファイル内に記述されたスクリプトを別のファイルへ読み込んで評価します。両者の違いは、include_onceには「同じファイルを二重に読み込まない」という防止機能がある点です。名前のとおり、たとえinclude命令を何度発行しても、ファイルが読み込まれるのは最初の1回だけです。

include_onceは、グローバル変数の初期化やライブラリの読み込みなど、アプリケーションの実行開始時に一度だけ行いたい処理によく使われます。

それ以外の動作は、includeステートメントとまったく同じです。

include_onceの基本的な使用例

次の例では、Apacheサーバーのドキュメントルートフォルダにtestscript.phpが配置されています。このスクリプトは、include_onceステートメントを使ってtest.phpを読み込みます。

コード例

<?php
echo "calling include_once statement\n";
$result=include_once "test.php";
?>
//test.php
<?php
echo "This file is included once\n";
?>

出力結果

testscript.phpのURLにブラウザでアクセスすると、次の結果が表示されます。

calling include_once statement

This file is included once

ファイル読み込み失敗時の警告

include_onceの引数に指定したファイルが見つからない場合、PHPパーサーは警告(Warning)を発行します。

コード例

<?php
echo "inside main script<br />";
$var1=100;
echo "now calling nosuchfile.php script";
include_once "nosuchfile.php";
echo "returns from nosuchfile.php";
?>

出力結果

次の結果が表示されます。警告が発生してもプログラムは終了せず、処理が続行される点に注意してください。

inside main script
now calling nosuchfile.php script
PHP Warning: include_once(nosuchfile.php): failed to open stream: No such file or directory in line 5
PHP Warning: include_once(): Failed opening 'nosuchfile.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 5
returns from nosuchfile.php

include_onceを再度呼び出した場合

次の例では、include_onceステートメントでtest.phpを読み込んでいます。同じファイルが2回目以降は読み込まれないことに注目してください。

コード例

//main script
<?php
echo "inside main script<br>";
echo "now including test.php script<br>";
include_once "test.php";
echo "now including again test.php script<br>";
?>
//test.php included
<?php
echo "This file is included once";
?>

出力結果

ブラウザには次の結果が表示されます。test.phpの内容は1回目の出力にしか現れないため、二重読み込みが防止されていることがわかります。

inside main script<br />now including test.php script<br />

This file is included once

now including again test.php script

  1. PHPのbreakステートメントとは?ループとswitchを抜ける方法を実例で解説

    はじめにbreakステートメントは、PHPにおけるループ制御のためのキーワードのひとつです。while、do-while、for、foreachといったループ処理やswitch文の中でプログラムの流れがbreakに到達すると、そのループ(またはswitchブロック)内の残りの処理はすべてスキップされ、ループの直後にある処理へと実行が移ります。基本構文while (expr) {     ..     ..     if (expr1)    &n

  2. HTMLをPHPの「if」文の中に埋め込む方法をわかりやすく解説

    はい、PHPを使えばHTMLを「if」文の中に埋め込むことができます。条件分岐の結果に応じて異なるHTMLを出力したい場面は非常に多く、そのためにいくつかの書き方が用意されています。ここでは代表的な3つの方法を紹介します。 方法1:代替構文(if〜endif)を使う PHPには、コロン「:」と「endif;」を組み合わせた代替構文があります。波括弧「{}」を使わないため、PHPとHTMLが混在するテンプレートでは特に読みやすくなります。 <?php if($condition) : ?>     <a href="http