php - 如何在 PHP 的 foreach 循环中创建动态函数?
问题描述
我正在尝试遍历array
usingforeach
循环,并为每个元素创建一个单独的函数。
$items = ['one', 'two', 'three'];
foreach( $items as $item ){
function $item."_output"(){
echo $item.' success';
}
}
我的期望是为每个数组元素创建函数,例如
:function one_output(){}
、、function two_output(){}
function three_output(){}
解决方案
您不能直接创建函数。但是您可以创建闭包(匿名函数)并将它们放入数组中:
<?php
$items = ['one', 'two', 'three'];
$myfuncs = array();
foreach( $items as $item ) {
// create a function which uses current value of $item
$myfuncs[$item] = function() use ($item) {
echo $item.' success';
};
}
$myfuncs['one'](); // one success
$myfuncs['two'](); // two success
推荐阅读
- python - Alexa 只调用 LauchRequest 而不是意图
- wordpress - Wordpress - 在密码更改时禁用用户通知
- listview - 如何将嵌套的可观察集合值绑定到列表视图
- mysql - 带有异常处理的存储过程的检查点
- twitter-bootstrap-3 - 将 Boostrap 模板转换为 Drupal 主题
- macos - Cocoa NSWindow 全屏保持标题栏
- android - 多级用户登录
- php - Excel 无法识别 PHP 制表符分隔的内容
- html - 在动态加载的内容上使用缓存控制“必须重新验证”的正确方法是什么?
- android - 进程“命令节点”以非零退出值 1 结束