[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача переменного числа аргументов
shoman
Имеется функция с переменным количеством аргументов
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()
{
$args = func_get_args();
call_user_func_array('views_embed_view', $args);
}

Большое спасибо!
То, что нужно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.