php函数调用参数的问题,主要是参数数量不确定。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php函数调用参数的问题,主要是参数数量不确定。相关的知识,希望对你有一定的参考价值。

public function __call($method, $parameters)

//php函数调用参数的问题,主要是参数数量不确定。
//$parameters = array('参数1', '参数2' );//数量不定的参数,........
$obj = $this -> getObj();
//$obj -> $method($parameters[0], $parameters[1]);//如果知道数量,当然这样就可以了
//但是不知道参数数量,我想到的方法只有这样
eval("\$res = \$obj -> $method(".implode(', ', $parameters).");");
return $res;

有没有更好的方法,不用eval就可以搞定的。。。

参考技术A 参数不确定的情况下敢不敢把所有的参数和值按照key=>value的性质组织成数组,然后json_encode一下,函数调用的时候传递一个参数,参数的值就是这个json,然后过去再把json_decode成数组?你觉得呢?追问

那样定义的函数看起来没有任何特征
比如
function getRow($cols, $where)

这样一看便知第一个是定义字段,第二个是where语句
如果你定义一个数组
function getRow($array)

岂不是很傻。
函数就是给人看的,如果写完了,过段时间自己都看不懂,修改代码就会很麻烦了

追答

亲,注释。虽然代码可用即可读是重要的,但是注释也是必要的,好的注释可以便于人们理解。这种情况你只需要多几行注释,就可以节省很多性能,我觉得这不是个值得纠结的问题。

追问

额,注释当然重要,可是代码让人一看就懂不是更好吗?

追答

好吧。这个是个人主观意识的东西了。我觉得讨论下去没有结果。我只能说以我的工作经验通常都是这么解决的。

追问

谢谢,这也的确是一个解决办法,就是不知道还有没有其他方法了。

追答

非常高兴可以帮助到你。希望你能找到满意的解决方法。

本回答被提问者采纳
参考技术B 是不是可以用 call_user_function_arry 来解决。
if(function_exist($method))
$res=call_user_function_array($method,$parameters);

Java中的函数(方法)声明和调用

目前学习了有无返回值和有无参数的函数。

其次就是函数的调用,需要参数的函数在调用时应该传入参数,参数的类型和数量应和声明是一样。

返回值主要是在函数执行完后返回一个数据。 

其主要作用就是将不同功能的代码分割成多个部分,为重复使用该代码提供方便。

//函数(方法)的基本概念
//(怎么用,什么时候用)
//public static void main(String [] args){}

//不带参数不带返回值的函数
public static void xxxXxx1(){

}
//带参数不带返回值的函数
public static void xxxXxx2(int a, String s){

}
//带参数带返回值的函数
public static int xxxXxx3(int a, String s){
return 1;
}


public static String draw(int x1,int y1, int x2, int y2){
System.out.println("线画好了....");
return "";
}






















以上是关于php函数调用参数的问题,主要是参数数量不确定。的主要内容,如果未能解决你的问题,请参考以下文章

PHP:通过引用的可变长度参数列表?

给定传递给它的参数类型,如何确定函数参数的类型?

C/C++中的可变参数和可变参数模板

如何创建函数来获取不确定数量的参数但成对?

创建具有不确定数量参数的 Oracle 函数/宏

参数数量不限的 PHP 函数