我想要实现的目标是:
function foo($args) {
switch($args['type']) {
case 'bar':
bar($args['data']); // do something
break;
}
}
// or something like that
这基本上是一种在PHP中使用命名参数的方法。
现在,为了构建这个$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。