ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

call_user_func系だと参照返しが出来ないので、やむなくeval()に。

参照を返す関数をcall_user_func経由で呼ぶと、
E_NOTICE: Only variable references should be returned by reference
が発生してしまう。ので、eval()を使って

eval("\$ret =& 実行時に決まる、参照を返す関数orメソッド(引数);");

みたいにしないと駄目でした・・・。

きっかけは、YakiBikiにKinoWikiのWikiParser部分を移植していて、半年ほど前(笑)にとりあえずPHP4に機械的に変換した時は、「?なんでeval()なんだろう・・・call_user_func_array()でよかね?」とcall_user_func_array()にしていたのですが、最近になってようやくWikiParserの実装に着手しだして、ちまちまやり始めたら嵌ったという次第。結局eval()に巻き戻し。