Вот что я пытаюсь сделать:
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.