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 'クロージャだよ!';}");


実行結果

こんにちわ。クロージャだよ!


ものすごく使う気にならないのはなんでだ。