日期:2014-05-17  浏览次数:20450 次

多个自定义函数该怎么传?

function a(){}
function b(){}
function c(){}

function demo(参数){
 //有时用a(),有时用b(),有时用c()
}

demo(参数);


我的疑问是,可以把函数作为参数传递么?
可以的话,写法是怎样的?
求指点。。。

------解决方案--------------------
本帖最后由 xuzuning 于 2013-01-28 16:06:55 编辑
可以把函数作为参数传递么?
可以!
//无其他参数
function demo($func) {
  $func();
}
//例
demo('a');

//有固定数量参数,比如2个
function demo($func, $p1, $p2) {
  $func($p1, $p2);
}
//例
demo('b', 2, 4);

//有不定数量参数
function demo() {
  $t = func_get_ags();
  $func = array_shift($t);
  call_user_func_array($func, $t);
}
//例
demo('c', 2, 4, 'a', 'b', 'c');