下面来说说call_user_func、call_user_func_array这两个函数的用法和例子

call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:

第一种是调用孤独的函数:

function funa($b,$c){ echo $b; echo $c;
}
call_user_func('funa', "111","222");
call_user_func('funa', "333","444");
//显示 111 222 333 444
//大家有没有发现,这个用法有点像javascript中的call方法,嘿嘿

第二种是调用类内部的函数:

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");

上面这个例子,自己运行一下看看结果是什么吧~嘿嘿~提示一下func_get_args()函数是获取传入到函数中的参数,返回一个数组,func_num_args()函数获取传入函数中的参数的个数。

下面再来看看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

下面再看一个动态调用函数的例子(是从网上找来的):

function otest1 ($a)
{ echo( '一个参数' );
}
function otest2 ( $a, $b)
{ echo( '二个参数' );
}
function otest3 ( $a ,$b,$c)
{ echo( '三个啦' );
}
function otest (){ $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】php中call_user_func函数的用法相关推荐

  1. 浅述numpy中argsort()函数的用法

    浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...

  2. C++中substr函数的用法

    C++中substr函数的用法 #include<string> #include<iostream> using namespace std; main() { string ...

  3. numpy中where函数的用法

    numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...

  4. delphi中move函数的用法

    delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...

  5. SQL中object_id函数的用法

    SQL中object_id函数的用法 收藏  int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...

  6. python remove函数_python中remove函数的用法是什么?

    python中remove函数的用法是什么? python中remove函数的用法: 描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.re ...

  7. Delphi中 StrToIntDef函数的用法

    Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strto ...

  8. python中int函数的用法浅析_Python中int()函数的用法浅析

    int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...

  9. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

最新文章

  1. C语言利用Cairo图形库绘制太极图
  2. Apache Flink 官方文档--概览
  3. Java 程序中使用 MongoDB教程
  4. arcgis几何修复有作用吗_ArcGis拓扑的那些事儿(拓扑应用过程二)
  5. Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)
  6. caffe特征可视化---python实现
  7. JavaScript 三种创建对象的方法
  8. linux查看perl进程,如何找到挂起perl脚本(linux进程)的位置
  9. JAVA中文件下载和文件批量下载方法
  10. 【数据分析能力是指什么?】
  11. 使用Certbot申请ssl证书
  12. Final Cut Pro X Guru: Advanced Trimming Final Cut Pro X Guru:高级修剪 Lynda课程中文字幕
  13. 大数据小项目之电视收视率企业项目12
  14. Dynamic CRM 2016 IFD配置(6)Claims-based认证-外部访问配置
  15. ev1百家云视频解密工具、ev1视频提取工具,支持Windows、MacOS、Linux
  16. 最小链覆盖——Dilworth定理
  17. 姗姗来迟,智能音箱于华为是鸡肋还是熊掌?
  18. 被迫营业:如何使用向日葵进行远程桌面控制(含MacOS)
  19. 织梦dedecmsTAG出现404页面的解决办法
  20. 使用Jmeter进行接口测试时需登录后才能测试接口的配置

热门文章

  1. BZOJ 4416: [Shoi2013]阶乘字符串【状压DP
  2. HDU 3518 HDU 4416【后缀自动机len的使用】
  3. 什么是CHIP LAN片式网络变压器?片式网络变压器分哪几种?目前应用较多的是哪种片式结构?
  4. 自然语言处理研究报告
  5. midi java_java midi音乐文件播放器
  6. 解决找不到gpedit.msc文件方法
  7. SQL server 数据库视频总结
  8. cuda10.1安装
  9. 有哪些适合在家做的正规兼职工作
  10. C# 设置线程的默认CultureInfo