関数の辞書が欲しい。このディクショナリを使用すると、関数名と引数の配列を受け取り、その関数を実行して、何かが返された場合に返される値を返すハンドラを作成できます。名前が既存の関数に対応しない場合、ハンドラーはエラーをスローします。
Javascript を実装するのは非常に簡単です。
var actions = {
doSomething: function(){ /* ... */ },
doAnotherThing: function() { /* ... */ }
};
function runAction (name, args) {
if(typeof actions[name] !== "function") throw "Unrecognized function.";
return actions[name].apply(null, args);
}
しかし、関数は実際には PHP のファースト クラス オブジェクトではないため、これを簡単に行う方法がわかりません。PHPでこれを行うための合理的に簡単な方法はありますか?