PHP使用变量将多个参数传递给函数

时间:2013-09-17 19:23:11

标签: php function variables arguments parameter-passing

我有一个函数,希望将9个参数传递给它。它期望的第一个参数是一个字符串,其余的是整数。

这是功能:

 getProductPrice('red', 8, 1.6, 2.15, 0, 0, 0, 17.6, 0);

当它运行时,它运行正常。但是,当我像这样运行它时:

 getProductPrice("'red'".','.$arguments);

它不起作用。

"'red'".','.$arguments

输出:'红色',8,1.6,2.15,0,0,0,17.6,0

如果有人能告诉我如何使用$ arguments变量代替所有参数?

我最终怀疑是让它不起作用,$ arguments输出的是一个字符串,所以我研究了如何将逗号分隔的数字串转换为php函数的参数。

我遇到了这个:

$params = explode(',', $str);
call_user_func_array("func", $params);

我无法弄清楚如何使用此解决方案有两个原因:
我需要传递一个字符串和数字 2.简单地将我的函数名称放在那个示例中的“func”将不起作用,因为它是一个cakephp函数,它要求我放置$ this-> ModelName-> functionname,它打破了第一个参数call_user_func_array function()

任何想法如何帮助我们?

我可以把变量使得$ arguments输出它的功能,但是获取每个数字都需要很多复杂的逻辑和数学,所以我的函数调用看起来很荒谬。

再次感谢。

1 个答案:

答案 0 :(得分:1)

您应该尝试将"func"字符串替换为array($this->ModelName, 'functionname')。此数组中的第一个元素是您调用方法的对象,第二个元素是此方法名称的字符串表示形式。这样它应该有效:

$params = explode(',', $str);
call_user_func_array(array($this->ModelName, 'functionname'), $params);

当然用您自己的名称替换占位符名称。