call_user_func_array函数的用法
2014-07-01 15:29
197 查看
call_user_func_array是个很神奇的函数
在你PHP水平成长到一定高度的时候,你就能深刻理解它的意义了。
这里我给你举两个适合用call_user_func_array的例子,帮助你理解
场景一:参数数目不确定
函数的参数是用户传入的,而且参数的数目不确定。如果不用call_user_func_array你会怎么做?
一些PHP框架可以将$_GET参数自动映射到方法,就是这样实现的。
场景二:用于函数回调
回调函数可能是一个普通函数,可能是类方法,也可能是静态方法。
如果使用call_user_func_array,你就不用去判断方法的类型。
使用详解:
一、直接调用方法
.代码如下:
function test($a, $b)
{
echo '测试一:'.$a.$b;
}
//调用test方法,array("asp", 'php')对应相应的参数
call_user_func_array('test', array("asp", 'php'));
二、通过类调用类中的方法
.代码如下:
class test2{
function phpSay($a, $b)
{
echo '测试二:'.$a.$b;
}
}
$o = new test2();
//相当于:$o->phpSay('php','你好');
call_user_func_array(array(&$o, 'phpSay'), array('php','你好'));
在你PHP水平成长到一定高度的时候,你就能深刻理解它的意义了。
这里我给你举两个适合用call_user_func_array的例子,帮助你理解
场景一:参数数目不确定
函数的参数是用户传入的,而且参数的数目不确定。如果不用call_user_func_array你会怎么做?
一些PHP框架可以将$_GET参数自动映射到方法,就是这样实现的。
场景二:用于函数回调
回调函数可能是一个普通函数,可能是类方法,也可能是静态方法。
如果使用call_user_func_array,你就不用去判断方法的类型。
使用详解:
一、直接调用方法
.代码如下:
function test($a, $b)
{
echo '测试一:'.$a.$b;
}
//调用test方法,array("asp", 'php')对应相应的参数
call_user_func_array('test', array("asp", 'php'));
二、通过类调用类中的方法
.代码如下:
class test2{
function phpSay($a, $b)
{
echo '测试二:'.$a.$b;
}
}
$o = new test2();
//相当于:$o->phpSay('php','你好');
call_user_func_array(array(&$o, 'phpSay'), array('php','你好'));
相关文章推荐
- PHP call_user_func与call_user_func_array函数的用法
- call_user_func_array函数的用法
- call_user_func_array函数详解
- PHP中call_user_func_array回调函数的用法示例
- php学习之道:call_user_func和call_user_func_array的用法
- 【转】php中call_user_func()函数和call_user_func_array()函数的用法详解
- (转载)php之call_user_func_array的简易用法
- call_user_func、call_user_func_array的用法
- call_user_func() 函数 用法
- call_user_func函数和call_user_func_array函数
- call_user_func函数和call_user_func_array函数
- PHP 函数call_user_func和call_user_func_array用法详解
- PHP学习笔记之call_user_func_array函数
- call_user_func_array用法
- call_user_func 和call_user_func_array 简单的用法
- call_user_func_array的用法
- PHP call_user_func的一些用法和注意点
- PHP中通过调用call_user_func_array函数执行mysqli_stmt_bind_param方法时需要注意的问题
- array_walk函数与call_user_func_array函数