您可以将函数存储在PHP数组中吗?

例如:

$functions = array(

'function1' => function($echo) { echo $echo; }

);

这可能吗?最好的选择是什么?

回答:

推荐的方法是使用匿名函数:

$functions = [

'function1' => function ($echo) {

echo $echo;

}

];

如果要存储已经声明的函数,则可以简单地通过名称将其引用为字符串:

function do_echo($echo) {

echo $echo;

}

$functions = [

'function1' => 'do_echo'

];

在PHP的旧版本(<5.3)中,不支持匿名函数,您可能需要诉诸使用create_function(自PHP 7.2起已弃用):

$functions = array(

'function1' => create_function('$echo', 'echo $echo;')

);

所有这些方法在callable伪类型的文档中列出。

无论选择哪种功能,都可以直接调用该函数(PHP≥5.4)或使用call_user_func``call_user_func_array

$functions['function1']('Hello world!');

call_user_func($functions['function1'], 'Hello world!');

以上是 您可以将函数存储在PHP数组中吗? 的全部内容, 来源链接: utcz.com/qa/418006.html

回到顶部