2016-02-29 56 views
0

下面是一行代碼我使用:如何將參數傳遞到call_user_func

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

$customTypes[$customDownloadType]可能會解決到類似getTags()

但是,如果我想將參數傳遞給getTags(),我該怎麼辦?例如,假設我有一個名爲$time的變量,我想傳入?我該怎麼辦?

看來我想要從http://php.net/manual/en/function.call-user-func.php的例子2和4的混合物 - 這是可能的嗎?

感謝

回答

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,部分。

的代碼片段讓我困惑了一下,因爲它看起來好像你應該使用賦值運算符=而不是=>,你還可以指定前手的陣列關鍵...

然而,如果這不是case,$json[JsonConstant::JSON_CUSTOM] => call_user_func($customTypes[$customDownloadType], $time), ...應該可以正常工作。

我也認爲$customTypes[$customDownloadType]將不得不返回"getTags"例如而不是"getTags()"雖然我可能是錯的。

您還可以使用變量函數來代替:$json[JsonConstant::JSON_CUSTOM] => $customTypes[$customDownloadType]($time), ...

問候