我循环遍历一系列项目,这些项目必须传递给接受不同数量参数的函数。我目前通过使用多个变量(看起来有些不整洁)来实现这一目标,如下所示:
$param3 = 'value';
$param4 = "";
$param5 = "";
if ($condition == true) {
$param3 = 'value';
$param4 = "value";
$param5 = array('item0', 'item1');
}
$object->method($param1, $param2, $param3, $param4, $param5);
有没有办法像下面那样做更清洁的事情:
$multiparams = 'value';
if ($condition == true) {
$multiparams = 'value,', 'value,', array('item0', 'item1');
}
$object->function($param1, $param2, $multiparams);
答案 0 :(得分:0)
你正在尝试做的事情将会奏效。您可以传递一个参数数组,PHP本身为很多内置函数提供了这些参数。
$params['var1'] = 'Hello';
$params['var2'] = 'World';
function myfunction($params) {
$var1 = $params['var1'];
$var2 = $params['var2'];
echo $var1 . $var2;
// Prints "HelloWorld"
}
答案 1 :(得分:0)
根据您的示例参数,不确定这是否适合您,但您可能只是根据条件调用该方法。
if ($condition) {
$object->method($param1, $param2, 'value', 'value', ['item0', 'item1']);
} else {
$object->method($param1, $param2, 'value');
}