猿问

求指导:php闭包实现数组的格式化

我原本的意思是如下代码
$eData=array(
'section'=>$v['section'],
'page'=>$v['page'],
//'status'=>$v['status'],
'type'=>$v['type'],
);
unset($v['page']);
//unset($v['status']);
unset($v['id']);
unset($v['type']);
unset($v['section']);
$eData['data']=serialize($v);
使用闭包的方式
$eData=array(
'section'=>$v['section'],
'page'=>$v['page'],
//'status'=>$v['status'],
'type'=>$v['type'],
'data'=>function(){
unset($v['page']);
//unset($v['status']);
unset($v['id']);
unset($v['type']);
unset($v['section']);
returnserialize($v);
}
);
问题1、php的闭包类closure并不支持返回参数
问题2、使用了use方法后仍然不能够对$v进行格式化操作,只能够删除其中的元素
use方法
$eData=array('section'=>$v['section'],
'page'=>$v['page'],
//'status'=>$v['status'],
'type'=>$v['type'],
'data'=>function()use($v){
unset($v['page']);
//unset($v['status']);
unset($v['id']);
unset($v['type']);
unset($v['section']);
return$v=serialize($v);
},);
jeck猫
浏览 257回答 2
2回答

鸿蒙传说

是要这个效果吗?$eData=array('section'=>$v['section'],'page'=>$v['page'],'type'=>$v['type'],'data'=>call_user_func(function()use(&$v){unset($v['page']);unset($v['id']);unset($v['type']);unset($v['section']);returnserialize($v);}),);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答