В PHP как я могу вызвать функцию с теми же переменными, которые были переданы ей? - PullRequest
2 голосов
/ 13 января 2012

Если у меня есть две функции, я знаю, что могу вызвать function two из function one следующим образом:

function one($a,$b,$c,$d)
{
    two($a,$b,$c,$d);

}

Но возможно ли сделать это более динамично, что-то вроде этого?

function one($a,$b,$c,$d)
{
    $args = func_get_args();
    two(list($args));

}

Ответы [ 3 ]

4 голосов
/ 13 января 2012

Да, и вы уже на полпути;). Используйте call_user_func_array:

function one($a,$b,$c,$d) {
    $args = func_get_args();
    call_user_func_array('two', $args);
}
4 голосов
/ 13 января 2012

Вы можете использовать call_user_func_array, чтобы сделать это:

function one($a,$b,$c,$d) 
{ 
    call_user_func_array('two', func_get_args());
} 
0 голосов
/ 13 января 2012

Во-первых, call_user_func_array должно помочь вам вызвать две функции с параметрами, находящимися в массиве.

Во-вторых, func_get_args должны давать аргументы в чистом массиве, поэтому подведем итог:

function one($a, $b, $c, $d) 
{
   call_user_func_array('two', func_get_args());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...