PHP:命名参数/数组的语法不那么难看?
发布时间:2020-12-13 22:00:48 所属栏目:PHP教程 来源:网络整理
导读:这就是我想要完成的事情: function foo($args) { switch($args['type']) { case 'bar': bar($args['data']); // do something break; }}// or something like that 这基本上是在PHP中使用named parameters的一种方式. 现在,为了构建这个$args数组,我被迫编
这就是我想要完成的事情:
function foo($args) { switch($args['type']) { case 'bar': bar($args['data']); // do something break; } } // or something like that 这基本上是在PHP中使用named parameters的一种方式. 现在,为了构建这个$args数组,我被迫编写丑陋的语法,如: $builtArgs = array('type' => 'bar','data' => array(1,2,3),'data2' => array(5,10,20) ); foo($builtArgs); 当我向数组添加更多维度时,这会变得更加丑陋,并且还迫使我编写大量数组(…)构造.有更好的方法吗? 首先,如果我们可以使用类似Python的语法,就可以完成: $buildArgs = {'type' : 'bar','data' : [1,3],'data2' : [5,20]}; 但它是PHP. 解决方法
您可以创建一个JSON编码的字符串,并使用json_decode()将其转换为变量.这个语法与您提到的类似Python的语法非常相似.
$argstr = '{"type" : "bar","data" : [1,"data2" : [5,20]}'; $buildArgs = json_decode($argstr,true); 编辑:更新代码以适应@herehere的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |