PHP中call user func()和call_user_func_array()调用自定义函数小结

Posted Steven*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中call user func()和call_user_func_array()调用自定义函数小结相关的知识,希望对你有一定的参考价值。

call_user_func() 和 call_user_func_array(),通过传入字符串函数,可以调用自定义函数,并且支持引用,都允许用户调用自定义函数并传入一定的参数:

1、mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

  第一个参数为自定义函数名称,后面的参数为函数的参数,返回值为自定义函数的结果。

function say($word)
{
 echo $word;
}
call_user_func(‘say‘, ‘hello world‘); 
//输出
//hello world

  当然也可以调用类中的方法:

class World {
 function sayHello($word = ‘‘)
 {
  echo $word;
 }
} 
 //注意,必须是要实例化的,除非是static
$world = new World();
call_user_func([$world, ‘sayHello‘], ‘hello world‘); 
//输出 hello world

注意:上面写数组的方式[ ],如果php版本在PHP5.4以下的,还是用array()

2、mixed call_user_func_array ( callable $callback , array $param_arr )

跟call user func()在功能上其实是一样的,只是传入参数上稍有区别,这个其实从方法的命名上就可以看的出来:

function say($word)
{
 echo $word;
}
call_user_func_array(‘say‘, [‘hello world‘]); //注意:第二个参数是数组的形式
//输出
//hello world
class World {
 function sayHello($word = ‘‘)
 {
  echo $word;
 }
} 
 //注意,必须是要实例化的,除非是static
$world = new World();
call_user_func_array([$world, ‘sayHello‘], [‘hello world‘]); //注意:第二个参数是数组形式
//输出 hello world

以上是关于PHP中call user func()和call_user_func_array()调用自定义函数小结的主要内容,如果未能解决你的问题,请参考以下文章

php中call_user_func 与 call_user_func_array

php回调函数call_user_func和call_user_func_array详解

php函数: call_user_func()和call_user_func_array() 使用详解

php中call_user_func 与 call_user_func_array的使用

php自定义函数call_user_func和call_user_func_array详解

php中怎么使用call_user_func动态调用方法