qua*_*oup 3 php syntax coding-style
这就是我想要完成的事情:
function foo($args) {
switch($args['type']) {
case 'bar':
bar($args['data']); // do something
break;
}
}
// or something like that
Run Code Online (Sandbox Code Playgroud)
这基本上是在PHP 中使用命名参数的一种方式.
现在,为了构建这个$args数组,我被迫编写丑陋的语法,如:
$builtArgs = array('type' => 'bar',
'data' => array(1, 2, 3),
'data2' => array(5, 10, 20)
);
foo($builtArgs);
Run Code Online (Sandbox Code Playgroud)
当我向数组中添加更多维度时,这会变得更加丑陋,并且还迫使我编写大量的array(...)构造.有更好的方法吗?
首先,如果我们可以使用类似Python的语法,就可以完成:
$buildArgs = {'type' : 'bar', 'data' : [1, 2, 3], 'data2' : [5, 10, 20]};
Run Code Online (Sandbox Code Playgroud)
但它是PHP.
您可以创建一个JSON编码的字符串,并用json_decode()它将其转换为变量.这个语法与您提到的类似Python的语法非常相似.
$argstr = '{"type" : "bar", "data" : [1, 2, 3], "data2" : [5, 10, 20]}';
$buildArgs = json_decode($argstr, true);
Run Code Online (Sandbox Code Playgroud)
编辑:更新代码以适应@herehere的建议.
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |