[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача аргументов в функцию из массива
ZSH
Добрый день.
Нужно в функцию передать неограниченное количество аргументов из содержимого массива.
пример:

$arr = array('param1','param2','param3');//массив значений для передачи в функцию

func($arr);//вызов функции

function func()
{
$param = func_get_args();//получение параметров
}

структура $param в функции: array(0=>array(0=>'param1',1=>'param2',=>'param3'));
хочется получить array(0=>'param1',1=>'param2',=>'param3') без разбора внутри функции.
Может кто знает способ без eval ?

$param = '';
foreach ($arr as $v)
$param .= '"' . $v . '",';

$param = trim($param,',');

eval('func(' . $param . ');');//вызов функции и передача туда принятых параметров




Спустя 7 минут, 55 секунд (2.11.2011 - 12:25) Winston написал(а):
Так ?
$arr = array('param1','param2','param3');//массив значений для передачи в функцию

func($arr);//вызов функции

function func()
{
$param = func_get_args();//получение параметров
print_r(reset($param)); // Array ( [0] => param1 [1] => param2 [2] => param3 )
}

Спустя 13 минут, 49 секунд (2.11.2011 - 12:39) linker написал(а):
$arr = array('param1','param2','param3');
call_user_func_array('func', $arr);

function func()
{
$param = func_get_args();//получение параметров
}

Спустя 42 минуты, 3 секунды (2.11.2011 - 13:21) ZSH написал(а):
Winston
оно то так, но reset($param) внутри функции :)

linker
ДА! То что нужно, забыл за вызов пользовательских функций :o
call_user_func_array(array($obj,$method),$array_param);

Спасибо!
Быстрый ответ:

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