php函数call_user_func_arrray、call_user_func、func_get_args、func_num_args的用法
2014-02-08 15:58
501 查看
因为刚接触php所以今天在工作用遇到一个函数call_user_func_array,不懂,于是就去搜了一下,本想这只搜这个函数的用法,结果,搜到的不止这个,还有很多函数的用法,外加一个惊喜,因为这些函数的存在,php函数的重载也可以这么利用!!
首先说两个简单的,基础的,后面会例子里面会用到的:func_get_args和func_num_args,从名字看就大概猜的到了。
func_get_args是获取函数的参数列表,是数组类型,这个要注意。
func_num_args是获取函数的参数的个数。
然后就是主要的两个函数了:call_user_func和call_user_func_array,这两个都是动态调用函数时经常用到的。
call_user_func:
1、第一种是调用孤独的函数:
2、第二种是调用类内部的函数:
call_user_func_array:用法和call_user_func接近,只是参数传入的是数组。
1、同call_user_func一样
2、可以调用类内部函数
以上就是因为一个函数引来的收获,哈哈
ps:以上例子很内容是由参考别人文章后自己终结点
首先说两个简单的,基础的,后面会例子里面会用到的:func_get_args和func_num_args,从名字看就大概猜的到了。
func_get_args是获取函数的参数列表,是数组类型,这个要注意。
func_num_args是获取函数的参数的个数。
然后就是主要的两个函数了:call_user_func和call_user_func_array,这两个都是动态调用函数时经常用到的。
call_user_func:
1、第一种是调用孤独的函数:
function funa($b,$c) { echo $b; echo $c; } call_user_func('funa', "111","222"); call_user_func('funa', "333","444"); //显示 111 222 333 444
2、第二种是调用类内部的函数:
class a { function b() { $args = func_get_args(); $num = func_num_args(); print_r($args); echo $num; } } call_user_func(array("a", "b"),"111","222");这个结果大家应该看的出来的,如果不确定最好自己运行下试试。
call_user_func_array:用法和call_user_func接近,只是参数传入的是数组。
1、同call_user_func一样
function a($b, $c) { echo $b; echo $c; } call_user_func_array('a', array("aa", "ss")); //显示 aa ss
2、可以调用类内部函数
Class ClassA { function bc($b, $c) { $bc = $b + $c; echo $bc; } } call_user_func_array(array('ClassA','bc'), array("1", "2")); //显示 3下面是一个更好的例子,实现了函数的重载
function test1($a){ echo ('一个参数'."\n"); } function test2($a,$b){ echo ('两个参数'."\n"); } function test3($a, $b, $c){ echo ('三个参数'."\n"); } function test(){ $args = func_get_args(); $num = func_num_args(); call_user_func_array('test'.$num, $args ); } test("a"); test("a", "b"); test("a", "b", "c");这个非常建议大家自己写一下运行看下效果,其中里面的代码写的也很精简,值得学习。
以上就是因为一个函数引来的收获,哈哈
ps:以上例子很内容是由参考别人文章后自己终结点
相关文章推荐
- PHP函数处理 函数(1): call_user_func(_array)、func_get_arg(s)、func_num_args
- call_user_func_array,func_num_args,func_get_arg
- php的冷门函数之——call_user_func_array,func_get_args,func_num_args
- php的冷门函数之——call_user_func_array,func_get_args,func_num_args
- func_num_args函数和func_get_args()函数额用法
- PHP的一些函数call_user_func_array,func_get_args()
- func_get_arg(),func_get_args()和func_num_args()的用法
- PHP func_num_args与func_get_args
- func_get_args,与func_num_args的使用
- php手册中关于func_get_args()的用法例子
- 关于PHP中func_get_args()、func_get_arg()、func_num_args()的使用(PHP函数重载)
- PHP 函数call_user_func和call_user_func_array用法详解
- 函数无限参数,func_num_args 和 func_get_arg 函数
- PHP call_user_func的一些用法和注意点
- php 函数:func_get_args()、func_get_arg()与func_num_args()
- func_num_args func_get_arg func_get_args
- php函数call_user_func和call_user_func_array详解
- func_get_arg,func_get_args,func_num_args实现PHP伪重载
- func_get_args()、func_get_arg()与func_num_args()
- PHP func_num_args() 与 func_get_args()函数介绍及使用