call_user_func函数和call_user_func_array函数(PHP)
2013-05-24 13:25
274 查看
今天偶然的情况下在CodeIgniter的官方文档中再次看到了php中的call_user_func_array()这个函数,去年也在discuz论坛的代码中也有遇到过,但是当时不知道怎么回事,在网上没有找到相应的说明,所以也一直都没弄明白这个函数有什么用处。呵呵~~很幸运的是,今天在网上搜索到了这个函数的用法(PS:虽然php手册中有关于这个函数的介绍,但是看了介绍还是不明白,也不知道是我的理解能力不行还是文档说明的太模糊了,不信你自己去看看:http://cn2.php.net/call_user_func_array)
下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数和func_num_args()函数,嘿嘿!!
call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:
第一种是调用孤独的函数:
?
第二种是调用类内部的函数:
?
上面这个例子,自己运行一下看看结果是什么吧~嘿嘿~提示一下func_get_args()函数是获取传入到函数中的参数,返回一个数组,func_num_args()函数获取传入函数中的参数的个数。
下面再来看看
call_user_func_array函数
这个函数也是当需要动态调用函数时用到的,它的用法和call_user_func函数比较像,只是参数传入的是数组。
?
call_user_func_array函数也可以调用类内部的方法的
?
下面再看一个动态调用函数的例子:是从网上找来的:
?
呵呵~上面这个例子,还是你们自己运行一下,那样印象更加深刻~
下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数和func_num_args()函数,嘿嘿!!
call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:
第一种是调用孤独的函数:
?
<!--? functionfuna($b,$c) { echo$b; echo$c; } call_user_func('funa',"111","222"); call_user_func('funa',"333","444"); //显示 111 222 333 444 //大家有没有发现,这个用法有点像javascript中的call方法,嘿嘿 ?-->
第二种是调用类内部的函数:
?
<!--? classa { functionb() { $args= func_get_args(); $num= func_num_args(); print_r($args); echo$num; } } call_user_func(array("a","b"),"111","222"); ?-->
上面这个例子,自己运行一下看看结果是什么吧~嘿嘿~提示一下func_get_args()函数是获取传入到函数中的参数,返回一个数组,func_num_args()函数获取传入函数中的参数的个数。
下面再来看看
call_user_func_array函数
这个函数也是当需要动态调用函数时用到的,它的用法和call_user_func函数比较像,只是参数传入的是数组。
?
<!--? functiona($b,$c) { echo$b; echo$c; } call_user_func_array('a',array("111","222")); //显示 111 222 ?-->
call_user_func_array函数也可以调用类内部的方法的
?
<!--? Class ClassA { functionbc($b,$c) { $bc= $b+ $c; echo$bc; } } call_user_func_array(array('ClassA','bc'),array("111","222")); //显示 333 ?-->
下面再看一个动态调用函数的例子:是从网上找来的:
?
<!--? functionotest1 ($a) { echo('一个参数'); } functionotest2 ( $a,$b) { echo('二个参数'); } functionotest3 ( $a,$b,$c) { echo('三个啦'); } functionotest (){ $args= func_get_args(); $num= func_num_args(); call_user_func_array('otest'.$num,$args ); } otest("11"); otest("11","22"); otest("11","22","33"); ?-->
呵呵~上面这个例子,还是你们自己运行一下,那样印象更加深刻~
相关文章推荐
- PHP之call_user_func函数和call_user_func_array函数
- call_user_func函数和call_user_func_array函数
- PHP中通过调用call_user_func_array函数执行mysqli_stmt_bind_param方法时需要注意的问题
- PHP call_user_func与call_user_func_array函数的用法
- 【php】php中call_user_func_array和call_user_func函数的用法
- PHP学习笔记之call_user_func_array函数
- call_user_func函数和call_user_func_array函数
- PHP中call_user_func_array()函数的用法演示
- PHP的一些函数call_user_func_array,func_get_args()
- php call_user_func_array的详细用法
- PHP 中__Call()和call_user_func_array()方法的使用方法
- php:php:call_user_func()--调用用户定义的回调函数
- php的冷门函数之——call_user_func_array,func_get_args,func_num_args
- call_user_func_array函数的用法
- PHP中call_user_func_array回调函数的用法示例
- PHP -- call_user_func()
- php中call_user_func函数使用注意事项
- php的冷门函数之——call_user_func_array,func_get_args,func_num_args
- 浅析PHP中call user func()函数及如何使用call user func调用自定义函数
- PHP的内置函数call_user_func()