加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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的建议.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读