[no_toc]
include、requireでパラメーターを渡す方法
includeやrequire等でパラメーターを渡したい場合、GETでパラメーターを渡すように、以下のようにしたいところですが、これではパラメータは引き渡されません。
<?php include("hoge.php?p=123"); ?>
以下のようにすればOKです。
<?php $p = 123; include("hoge.php"); ?>
【hoge.php】
<?php echo "「".$p."」だよ。"; ?>
外部ファイルを「呼び出す」という感覚だとパラメータを渡したくなる気持ちもわかりますが、
include、requireは、「外部ファイルを取り込む」ので、当然といえば当然の動きです。
GETやPOSTを使う方法もありますが、わざわざそんな面倒なことする必要もありません。
単純に変数に代入すれば良いだけで、万事解決です。
PHPで外部ファイルを取り込む関数
PHPで外部ファイルを取り込める関数は以下の通り。
- include
- include_once
- require
- require_once
ほぼ同じ動きをしますが、動作に若干違いがあります。
関数名 | 読み込み回数 | ファイルがない場合の扱い |
---|---|---|
include | 何回でも | 警告 |
include_once | 1回のみ | 警告 |
require | 何回でも | エラー |
require_once | 1回のみ | エラー |
○○○_once関数は、一度だけ取り込み、2回目以降同じ関数が来ても無視されます。
エラーチェックがない分、速度的には、require系よりinclude系の方が若干速いかと思いますが、無視しても良いレベルの差だと思います。
因みに、
includeは「含める」、requireは「要求する」という意味です。
includeは「含める」、requireは「要求する」という意味です。
コメント