最近PHPを勉強し直すため、参考書を読んでいるのだが、その中で使ったことのなかった関数が出てきたのでメモ。
extract関数の使い方
例えば以下のような連想配列があったとする。
1 2 3 4 5 | $arr = array ( 'hoge' => 1, 'fuga' => 2, 'piyo' => 3, ); |
extract関数を使うことで、以下のようにキーを変数名として一括展開することが可能だ。
1 2 3 4 5 6 7 8 | extract( $arr ); echo "$hoge\n$fuga\n$piyo" ; // 以下出力結果 1 2 3 |
デフォルトでは関数実行時に同名の変数があった場合、元の変数が上書きされるようになっている。
これを防ぎたい場合は、以下のようにオプションを指定することで、新たに生成される変数に接頭辞を付けることができ、変数の競合を避けることができる。
1 2 3 4 5 6 7 8 | extract( $arr , EXTR_PREFIX_ALL, 'aaa' ); echo "$aaa_hoge\n$aaa_fuga\n$aaa_piyo" ; // 以下出力結果 1 2 3 |
第二引数にEXTR_PREFIX_ALLを指定し、第三引数に接頭辞となる文字列を指定する。
こうすることで、接頭辞をアンダースコアで繋げた変数名として、新たに変数を生成することができる。