Передача переменного числа аргументов из функции в функцию
Пример того что надо сделать:
Код:
function parse($query /*,... тут может быть любое число параметров, которые нужно передать */)
{
return sprintf($query /*,... как все необязательные параметры передать сюда */);
}
{
return sprintf($query /*,... как все необязательные параметры передать сюда */);
}
Короче такой глобальный вопрос "как передавать необязательные параметры в виде необязательных параметров?".
Такое вообще возможно?
Код:
function parse($query/* все остальное */) {
$arg_list = func_get_args();
array_map("addslashes",$arg_list);
eval( "return sprintf(".$query.",".implode(",",$arg_list).");" );
}
$arg_list = func_get_args();
array_map("addslashes",$arg_list);
eval( "return sprintf(".$query.",".implode(",",$arg_list).");" );
}
ЗЫ: не забыть сделать проверку, если $arg_list пуст
Я такого не делал, но посмотри на [COLOR=#000000][COLOR=#007700][/COLOR][COLOR=#0000BB]ReflectionFunction.[/COLOR][COLOR=#007700][/COLOR][/COLOR]
А вот, только что роясь по мануалу, случайно наткнулся. Функция vsprintf делает то же, что и sprintf, но принимает массив, а не множество переменных
Код:
function parse($query/* все остальное */) {
$args = func_get_args();
return call_user_func_array('sprintf', $args)
}
$args = func_get_args();
return call_user_func_array('sprintf', $args)
}
Результат получается одинаковый, но если вдруг кому-то понадобится вызывать какую-то другую функцию, то способ может пригодиться.