無名関数
$greet = function($name) {
print("hello:".$name);
};
$greet("World");
$greet("PHP");
class Hoge {
public $fn;
}
$h = new Hoge();
$h->fn = function($name) {
print("hello:".$name);
}
上記のような定義の後、普通に呼び出そうとすると
$h->fn("World");
//エラー Fatal error: Call to undefined method Hoge::fn()
括弧でくくっても
($h->fn)("World");
//エラー Parse error: syntax error, unexpected '('
一度、通常の変数に入れなおして呼び出すか
$x = $h->fn;
$x("World");
//動作する
もしくは、call_user_func();を利用する
call_user_func($h->fn,"World");
//動作する
2013/7/8
最終更新:2013年07月08日 12:18