Memo!シンプルな無名関数の使い方 - PHP
PHPの無名関数は、PHP5.3から導入されました。
無名関数:関数名をつけずに関数を作成する
もっともシンプルな使い方は、変数に関数を代入し、変数の値として実行します。
<?php $greet = function($_message) { printf("Hey!Hebisan, %s\r\n", $_message); }; $greet('Who do you think you are?'); $greet('How dare you say that!'); $greet('Shut up!');
$greet変数を指定すると
$greet('Who do you think you are?');
$greetに代入されている関数が実行され、
Hey!Hebisan, Who do you think you are?
が出力される。
無名関数を配列の要素にして、ループでまわすような使い方もできます。
<?php $functions = array( 'func1' => function () { $message = 'Cut it out!'; printf("Hey! %s %s\r\n", 'Hebisan', $message); }, 'func2' => function () { $r = mt_rand(1, 3); if($r === 1) $message = 'Good morning.'; if($r === 2) $message = 'Good afternoon.'; if($r === 3) $message = 'Good evening.'; printf("Hey! %s %s\r\n", 'Neko', $message); }, ); foreach ($functions as $key => $func) { $func(); }
参考: PHP: 無名関数 - Manual
(by へびさん)