【发布时间】:2010-07-13 16:10:42
【问题描述】:
这是我想要完成的:
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);
当我向数组添加更多维度时,这变得更丑陋,并且还迫使我编写大量 array(...) 构造。有没有更漂亮的方法来做到这一点?
一方面,如果我们可以使用类似 Python 的语法,就可以做到:
$buildArgs = {'type' : 'bar', 'data' : [1, 2, 3], 'data2' : [5, 10, 20]};
但它是 PHP。
【问题讨论】:
-
我个人不会真的说它很丑(至少如果你把它格式化),只是写起来不像一个衬里那么舒服。就我个人而言,我也在 python 中将其格式化为更多行,一个衬里很舒服,但我不会称之为好。
标签: php syntax coding-style