对于php来说,闭包和匿名函数其实一样。简单来写几个经常用到的形式。
- 最简单的一个匿名函数
$func = function( $i) {
echo $i;
};
$func('some string');
输出:some string
- 配合使用array_map
syncOrder参数有几位,就执行几次
function func($i)
{
return($i+1);
}
$syncOrderv=[1,2];
$result = array_map("func",$syncOrderv);
print_r($result);
输出:Array ( [0] => 2 [1] => 3 )
- 将其封装成一个函数
1.data参数不变,而syncOrder参数有几位,就执行几次
2.大概就是syncOrder变量如[1,2],然后foreach()
function outerLayer($data, $syncOrder){
//常规写法
return array_map(function ($i) use ($data) {
return json_encode($data).$i;
}, $syncOrder);
//使用php7.4的fn函数精简
return array_map(fn($i) => json_encode($data).$i, $syncOrder);
}
$data=['id'=>1,'value'=>'kudaren'];
$syncOrder=[1,2];
$result = outerLayer($data, $syncOrder);
print_r($result);
//上面的闭包函数大体相当于这样
$data=['id'=>1,'value'=>'kudaren'];
$syncOrder=[1,2];
$array=[];
foreach($syncOrder as $i){
$array[]=json_encode($data).$i;
}
print_r($array);
输出:Array ( [0] => {“id”:1,“value”:“kudaren”}1 [1] => {“id”:1,“value”:“kudaren”}2 )
d”:1,“value”:“kudaren”}1 [1] => {“id”:1,“value”:“kudaren”}2 )
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133973.html