extract — 配列から変数を生成

2007/08/14 | マイPHPメモ

プログラムを書くのになるべく注意していることがいくつかある。第一は可読性だ。あとで見直したときに「何書いたんだっけ」ということになるとメンテナンスできない。第二に「短いプログラム」を心がけている。長いプログラムは正直言って、後で読む気がなくなるからだ。
プログラムを短縮するのに便利な関数を一つ。「extract」を便利に使っている。この関数は連想配列から、キーを変数名として配列を複数の数の変数に展開してくれる関数だ。例えばこんな風に使う。

$myArray=array(‘id’=>1,’name’=>’php’);
extract($myArray);

これで$id=1、$name=’php’という二つの変数が出来上がる。ただしこれだと既に$idとか$nameといった変数があった場合に上書きされてしまうが、第二引数、第三引数を指定することで挙動にバリエーションを持たせられる。
例えば以下のように指定する。

$id=10;
$myArray=array(‘id’=>1,’name’=>’php’);
extract($myArray,EXTR_PREFIX_SAME,’new’);

このように記述すると$id=10、$name=’php’、$new_id=1という具合に、上書きしないよう衝突してしまった変数名にのみprefixをつけてくれる。挙動のオプションはいろいろ選べる。

EXTR_OVERWRITE
EXTR_SKIP
EXTR_PREFIX_SAME
EXTR_PREFIX_ALL
EXTR_PREFIX_INVALID
EXTR_IF_EXISTS
EXTR_PREFIX_IF_EXISTS
EXTR_REFS

上書きしたり、常にprefixをつけたりするなど、読んで字のごとくだ。見逃しやすい関数に思えるのでメモしておくことにした。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net