如何为每个数组键/值创建函数


How to create function from for each array key/value?

在评论之前,请仔细阅读...我正在研究一个框架,如wordpress小部件和侧边栏。这些是预定义的函数。在我们的框架中,我需要传递创建动态函数定义的参数。create_function() 不符合我的要求。

我有需要创建动态函数的情况。因此,我创建了一个包含函数名称的数组。请参考下面描述情况的示例。

例如

$dynArr = array(
 'function_one',
 'function_another',
 'function_another_one',
);
foreach ($dynArr as $key => $val) {
   function $key() {
       // FUNCTION DESCRIPTION HERE
   }
}

是否有任何解决方案可以使用PHP或使用wordpress过滤器等来做到这一点。

也许这会帮助你:

$function = function()
{
    echo 'Im annonymous function';
};
$function();

需要 PHP 5.3 才能工作;-)

最通用的方法是使用 eval()

eval('function abc() { echo "hello"; }');
abc();

正如你提到的wordpress,这可能是你需要做的。但我建议反对它,它是低效和危险的,而是生成一个php文件,如果函数的主体不经常更改。