2016-02-29 2 views
0

Вот строка кода, я использую:Как передать аргумент в call_user_func

$json[JsonConstant::JSON_CUSTOM] => call_user_func(array($this, $customTypes[$customDownloadType])), 

$customTypes[$customDownloadType] может решить что-то вроде getTags().

Что мне делать, если я хочу передать аргумент getTags()? Например, скажем, у меня есть var под названием $time, который я хочу передать? Что я делаю?

Кажется, я хочу, чтобы смесь примеров 2 и 4 от http://php.net/manual/en/function.call-user-func.php - это возможно?

Благодаря

ответ

0
call_user_func($fn, 'a', 'b', 'c'); // => $fn('a', 'b', 'c'); 

call_user_func_array($fn, ['a', 'b', 'c']); /// => $fn('a', 'b', 'c'); 
0

Как я понимаю, вы не нуждаетесь в array($this, часть.

фрагмент кода меня смущает немного, потому что это выглядит так, как будто вы должны использовать оператор присваивания = вместо => вы также указать ключ массива перед рукой ...

Однако, если это не случае, $json[JsonConstant::JSON_CUSTOM] => call_user_func($customTypes[$customDownloadType], $time), ... должен работать нормально.

Я также считаю, что $customTypes[$customDownloadType] должен был бы вернуть "getTags", а не "getTags()", хотя я мог ошибаться.

Вы также можете использовать различные функции вместо: $json[JsonConstant::JSON_CUSTOM] => $customTypes[$customDownloadType]($time), ...

С уважением