「PHP」の編集履歴(バックアップ)一覧はこちら
「PHP」(2013/07/08 (月) 12:18:14) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
PHP
[[トップページ]] > PHP
*** 無名関数
PHP 5.3では、無名関数が使える。
無名関数を使えば、変数に関数を代入して実行できる。
http://php.net/manual/ja/functions.anonymous.php
$greet = function($name) {
print("hello:".$name);
};
$greet("World");
$greet("PHP");
しかし、メンバ変数に入れた場合は、そのままえは実行できない。
http://site.oukasei.com/?p=984
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