連番の変数や関数名を for で処理するときなど、
動的に名前を指定したいときがある。
そのときは「可変変数」「可変関数」を使用するようだ。
以下メモメモ。。
■可変変数
PHP: 可変変数 - Manual
http://jp.php.net/manual/ja/language.variables.variable.php
変数名を動的に指定する場合は、
$a = 'hello';
$$a = 'world'; (または $hello = 'world';)
としたとき、以下のような出力。
echo "$a"; → hello
echo "${$a}"; → world
echo "$hello"; → world
変数名の一部だけを可変にする場合は、
$b = 'llo';
echo "$he{$b}"; → エラーとなる!
echo "${'he' . $b}"; → world
■可変関数
可変関数 - phpspot
関数名を動的に指定する場合は、
$a(); → hello()が呼び出される
関数名の一部だけを可変にする場合は、
"he" . $b(); → エラーとなる!変数名と違い、事前に結合しておかないと使えないようだ。
$c = "he" . $b;
$c(); → hello()が呼び出される
おまけ ■定数かどうか判定する
constant関数使います。
PHP: constant - Manual
http://jp.php.net/manual/ja/function.constant.php
定数で無いとき、NULLを返す関数です。
↓のような感じで使えそうかなー。
//「_CONST0」~「_CONST9」まで、もし定数で存在したら出力
for($i = 0; $i < 9; $i++) {
if(constant(constant("_CONST" . $i)) {
echo(constant("_CONST" . $i));
}
}
はてなブックマーク










