function views_embed_view() {
$args = func_get_args();
...
}
Я пишу другую функцию, которая должна вызывать предыдущую функцию. У моей функции тоже переменное число аргументов. В своей функции я получаю аргументы с помощью func_get_args(). Но если я буду передавать массив в views_embed_view, то та функция получит вместо списка аргументов, только один аргумент, который будет являться массивом значений.
Первый извращенский способ, который я придумал:
function expcard_views_embed_view(){
$args = func_get_args();
switch(count($args)) {
case 0:
$output = views_embed_view();
break;
case 1:
$output = views_embed_view($args[0]);
break;
case 2:
$output = views_embed_view($args[0], $args[1]);
break;
case 3:
$output = views_embed_view($args[0], $args[1], $args[2]);
break;
}
return $output;
}
Второй способ: использовать eval()
Не нравится мне это :( Есть ли другое решение?
Спустя 6 часов, 1 минута, 16 секунд (20.06.2011 - 08:02) linker написал(а):
function expcard_views_embed_view()
{
$args = func_get_args();
call_user_func_array('views_embed_view', $args);
}
Спустя 1 день, 20 часов, 41 минута, 31 секунда (22.06.2011 - 04:44) shoman написал(а):
Цитата (linker @ 20.06.2011 - 05:02) |
function expcard_views_embed_view() |
Большое спасибо!
То, что нужно.