PHP で クロージャ
※これ失敗でした。↓にもちょっとマシなやつ書いてます
http://d.hatena.ne.jp/am11op/20070702/1183392610
CakePHP 使ってたら、ものすごく closure 使いたくなった。
ググったら途中までやってる方達がいたので、
それパクって作ってみた。
↓途中までやってる方達
http://blog.xole.net/article.php?id=419
http://p0t.jp/mt/archives/2007/04/1byte.html
要は create_function を使えばよいわけだ。
closure.php
function closure($str) { $str = ereg_replace("^function\(\) *\{", "", $str); $str = ereg_replace("\}$", "", $str); $func =create_function('', $str); $func(); } function hoge($str, $func='') { echo $str; if ($func) { closure($func); } } echo hoge('こんにちわ。', "function() {echo 'クロージャだよ!';}");
実行結果
こんにちわ。クロージャだよ!
ものすごく使う気にならないのはなんでだ。