首页  >  文章  >  后端开发  >  如何有效地将函数存储在 PHP 数组中?

如何有效地将函数存储在 PHP 数组中?

Linda Hamilton
Linda Hamilton原创
2024-11-01 08:06:02939浏览

How can I store functions in PHP arrays effectively?

在 PHP 数组中存储函数

问题是是否可以在 PHP 数组中存储函数。例如,考虑以下内容:

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

这是一种可行的方法吗?如果没有,推荐的替代方案是什么?

推荐方法:匿名函数

在数组中存储函数的首选方法是使用匿名函数。与上面的示例一样,它们可以内联定义:

$functions = [
  'function1' => fn($echo) => $echo
];

引用外部函数

处理预先声明的函数时,您可以按名称引用它们strings:

<code class="php">function do_echo($echo) {
    echo $echo;
}

$functions = [
  'function1' => 'do_echo'
];</code>

旧方法 (PHP 5.3): create_function

对于不支持匿名函数的旧版本 PHP,create_function 构造可以是使用:
<code class="php">$functions = [
  'function1' => create_function('$echo', 'echo $echo;')
];</code>

调用存储函数

无论使用什么方法存储函数,都可以直接调用(PHP >= 5.4)或通过call_user_func/call_user_func_array.
<code class="php">$functions['function1']('Hello world!');

call_user_func($functions['function1'], 'Hello world!');</code>

总之,匿名函数是在 PHP 数组中存储函数的推荐方法,字符串引用用于预先声明的函数,而 create_function 可用于旧版 PHP 版本。

以上是如何有效地将函数存储在 PHP 数组中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn