如何将参数传递给call_user_func

时间:2016-02-29 04:33:46

标签: php

以下是我正在使用的一行代码:

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

$customTypes[$customDownloadType]可能会解析为getTags()

如果我想将参数传递给getTags(),我该怎么办?例如,假设我有一个名为$time的var,我想传入它?我该怎么办?

似乎我想要http://php.net/manual/en/function.call-user-func.php的示例2和4的混合 - 这可能吗?

由于

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

据我了解,您不需要array($this,部分。

代码片段让我感到困惑,因为它看起来好像你应该使用赋值运算符=而不是=>,因为你还事先指定了数组键...

但是,如果情况并非如此,$json[JsonConstant::JSON_CUSTOM] => call_user_func($customTypes[$customDownloadType], $time), ...应该可以正常工作。

我还认为$customTypes[$customDownloadType]必须返回"getTags",而不是"getTags()",尽管我可能错了。

您也可以使用变量函数:$json[JsonConstant::JSON_CUSTOM] => $customTypes[$customDownloadType]($time), ...

此致