php函数call_user_func和call_user_func_array

php教程函数call_user_func和call_user_func_array
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:
function a($b,$c)
{
echo $b;
echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");
//显示 111 222 333 444
?>

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:
class a {
function b($c)
{
echo $c;
}
}
call_user_func(array("a", "b"),"111");
//显示 111
?>

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:
function a($b, $c)
{
echo $b;
echo $c;

}
call_user_func_array('a', array("111", "222"));
//显示 111 222
?>

call_user_func_array函数也可以调用类内部的方法的

Class ClassA
{

function bc($b, $c) {
     $bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));

//显示 333
?>

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
function a(&$b)
{
$b++;
}
$c = 0;
call_user_func('a', &$c);
echo $c;//显示 1
call_user_func_array('a', array(&$c));
echo $c;//显示 2

 

php之call_user_func_array的简易用法
今天在群里面,有个叫lewis的在问call_user_func_array的用法,因为之前一直没有用过,也不能说什么,于是看一下手册,发现是这么写的:

call_user_func_array
(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Call a user function given with an array of parameters
Description
mixed call_user_func_array ( callback function, array param_arr )

Call a user defined function given by function, with the parameters in param_arr.
然后还有一个例子:

 

相信看了例子之后应该有点明白了吧?

 

时间: 2024-09-03 14:24:12

php函数call_user_func和call_user_func_array的相关文章

php自定义函数call_user_func和call_user_func_array详解_php技巧

call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: 复制代码 代码如下: function a($b,$c) { echo $b; echo $c; } call_user_func('a', "111","222"); call_user_func('a', "333","444"); //显示 111 222 333 444 ?> 调用类内部的方法比较奇怪,居然用的是array,不知道开发

PHP 函数call_user_func和call_user_func_array用法详解_php技巧

call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:第一种是调用孤独的函数: 复制代码 代码如下: <?phpfunction funa($b,$c){    echo $b;    echo $c;}call_user_func('funa', "111","222");call_user_func('funa', "333","444");//显示 111 222 333 444//

PHP函数call_user_func和call_user_func_array的使用

call_user_func() 函数类似于一种特别的调用函数的方法,使用方法如下:  代码如下 复制代码   function test($a, $b) {     echo $a*$b; } call_user_func('test', 4, 5); //---- echo 20 ----// 函数第一个参数为用户自定义函数,第二个参数为自定义函数中的参数. 调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:    代码如下 复制代码

PHP中功能强大却很少使用的函数实例小结_php技巧

本文实例讲述了PHP中功能强大却很少使用的函数.分享给大家供大家参考,具体如下: call_user_func_array - 让参数以数组的形式调用一个函数 call_user_func - 调用一个存在的函数 create_function - 建立一个函数 func_get_arg - 获取函数中某个参数的值 func_get_args - 获取函数的所有参数并组成数组 func_num_args - 获取一个函数的参数个数 function_exists - 判定一个函数是否存在 get

浅析PHP中call user func()函数及如何使用call user func调用自定义函数_php实例

UCenter源代码里有一个函数call_user_func,开始以为是自己定义的函数,结果到处都找不到.后来才知道call_user_func是PHP的内置函数,该函数允许用户调用直接写的函数并传入一定的参数,下面总结下这个函数的使用方法. call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: <?php function nowamagic($a,$b) { echo $a; echo $b; } call_user_func('nowamagic', "&q

PHP利用func_get_args和func_num_args函数实现函数重载实例_php技巧

本文实例讲述了PHP利用func_get_args和func_num_args函数实现函数重载的方法.分享给大家供大家参考.具体方法分析如下: 学习php的朋友都知道php本身是没有函数重载这一说的,更没说像java,c那样使用方法,但如果我们深入了解一下会发现可以在php中使用func_get_args()和func_num_args()函数实现函数重载,下面来举两个函数重载例子.这两个函数实现函数的重载. 1.默认参数,如果一个函数里面,这不是必须参数,而添加相应的默认值,就可以完成相应的功

PHP利用func_get_args()和func_num_args()函数实现函数重载

这两个函数实现函数的重载!! 1.默认参数 从这个上面就可以看到,如果一个函数里面,对不是必须参数,添加相应的默认值,就可以完成相应的功能.  代码如下 复制代码   function overloadFun($param1, $param2 = '1',$param3 = true)   {    // do something   } 利用函数func_get_args()和call_user_func_array() PHP代码:  代码如下 复制代码 function rewrite()

php的继承方法获取子类名

看了一下datastore的入门,以及开始采用MVC方式来写php,于是想拿php为redis写个model,可以实现一些datastore的基本功能...于是碰到这样一个问题-.- php里__CLASS__这类东西是静态绑定的,如果不再子类里重载的话,那么继承父类方法所得到的依旧是父类的名称而不是子类的名称.比如: class A{ function __construct(){ echo __CLASS__; } static function name(){ echo __CLASS__

PHP7.0,PHP7.1.x新特性

PHP7.1.x 新特性 风.fox 1.可为空(Nullable)类型 类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null .可以通过在类型前面加上一个问号来使之成为可为空的. function test(?string $name) { var_dump($name); } 以上例程会输出: string(5) "tpunt" NULL Uncaught Error: Too few arguments to function tes