PHPで無名関数で項目を処理しながらmap

Perlに慣れてるので、Perlでやる my @a = map { $_ . '=>' . $_ } qw(list of values); みたいなことをやりたい場合のPHPでのやり方。
$array = array_map(
  create_function('$c', 'global $global_variable; return $c . "ここで何か処理をする";'),
  array('a', 'b', 'c', 'd')
 );
グローバル変数を利用する場合、create_functionの処理の部分(関数の内部)でglobalする。
これは普通にfunction () …な場合も一緒で、グローバル変数を関数内部で使用する場合、関数の内部でその変数をglobal $variableとしなければならない。
ちなみに最後のcreate_functionの第2引数(PHPコードの文字列)の最後に ; を忘れるとsyntaxエラーになるので注意。

Leave a Reply