FireMaster
Guest
Создание объекта с переменным числом параметров
Есть следующая функция:
Суть кода в том, чтобы создать объект. Вопрос следующий: возможно ли сделать то, что делает код выше, но без свитча ? Знаю, что можно сделать через eval(), но это не вариант.
Есть следующая функция:
PHP:
function object_configuration()
{
require_once(object.php');
switch(func_num_args())
{
case 0:
$configuration['var1'] = 'val1';
$configuration['var2'] = 'val2';
$configuration['var3'] = 'val3';
$configuration['var4'] = 'val4';
$object = new object($configuration['var1'], $configuration['var2'], $configuration['var3'], $configuration['var4']);
break;
case 1:
object::error()->message('At least 2 parameters must be passed for the object.');
break;
case 2:
$configuration['var1'] = func_get_arg(0);
$configuration['var2'] = func_get_arg(1);
$object = new object($configuration['var1'], $configuration['var2']);
break;
case 3:
$configuration['var1'] = func_get_arg(0);
$configuration['var2'] = func_get_arg(1);
$configuration['var3'] = func_get_arg(2);
$object = new object($configuration['var1'], $configuration['var2'], $configuration['var3']);
break;
case 4:
$configuration['var1'] = func_get_arg(0);
$configuration['var2'] = func_get_arg(1);
$configuration['var3'] = func_get_arg(2);
$configuration['var4'] = func_get_arg(3);
$object = new object($configuration['var1'], $configuration['var2'], $configuration['var3'], $configuration['var4']);
break;
default:
object::error()->message('Too many parameters has been passed, maximum amount is 4.');
}
return $object;
}