在 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中文网其他相关文章!