函数名可以用参数的方式传递进去,因而调用不同函数。 配合func_get_args()函数接收参数到数组中,参数的个数也不一致。


function sayChinese($content) {echo '你好,'.$content . PHP_EOL;
}function sayEnglish($content) {echo 'Hello,'.$content . PHP_EOL;
}function say() {$args = func_get_args();$fun_name = $args[0];array_shift($args);call_user_func_array($fun_name, $args);
}say('sayChinese', '我是中国人');
say('sayEnglish', 'I am Chinese');

不需要判断函数类型,无论是普通函数,类的静态方法或者类的方法,均直接调用,你就不用去判断方法的类型。

class A {public static function sayChinese($content) {echo '你好,'.$content . PHP_EOL;}public static function sayEnglish($content) {echo 'Hello,'.$content . PHP_EOL;}
}function say() {$args = func_get_args();$fun_name = $args[0];array_shift($args);call_user_func_array(array('A', $fun_name), $args);
}say('sayChinese', '我是中国人');
say('sayEnglish', 'I am Chinese');
你好,我是中国人
Hello,I am Chinese你好,我是中国人
Hello,I am Chinese

call_user_func_array相关推荐

  1. php call_user_func_array 性能,php-call_user_func_array是否太慢?

    您有很多问题要解决-而call_user_func_array不是其中之一. 看看你的查询 这是您要构建的查询: SELECT * FROM trabajosEnSubasta WHERE MATCH ...

  2. call_user_func_array 笔记

    //call_user_func_array 用一个数组作为参数调用一个回调函数,返回值为回调函数执行的结果或者为false(回调函数执行有error时) //class_user_func_arra ...

  3. PHP中call user func()和call_user_func_array()调用自定义函数小结

    call_user_func() 和 call_user_func_array(),通过传入字符串函数,可以调用自定义函数,并且支持引用,都允许用户调用自定义函数并传入一定的参数: 1.mixed c ...

  4. PHP中的call_user_func_array

    场景一:参数数目不确定 函数的参数是用户传入的,而且参数的数目不确定.如果不用call_user_func_array你会怎么做?一些PHP框架可以将$_GET参数自动映射到方法,就是这样实现的. 场 ...

  5. call_user_func和call_user_func_array的用法

    call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] ) 调用第一个参数所提供的用户自定义的函数. 返回值: ...

  6. php _call call_user_func_array,PHP call_user_func和call_user_func_array函数的简单理解与应用分析...

    本文实例讲述了PHP call_user_func和call_user_func_array函数的简单理解与应用.分享给大家供大家参考,具体如下: call_user_func():调用一个回调函数处 ...

  7. PHP函数call_user_func和call_user_func_array详解

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

  8. 简单理解call_user_func和call_user_func_array两个函数

    call_user_func():调用一个回调函数处理字符串, 可以用匿名函数,可以用有名函数,可以传递类的方法, 用有名函数时,只需传函数的名称 用类的方法时,要传类的名称和方法名 传递的第一个参数 ...

  9. php set medias,laravel5.1 -- Integrate FileManager and CKeditor into laravel

    FileManager中文名叫文件管理器,也叫文件浏览器,它给我们提供了一个可视化的界面来管理文件和文件夹.利用FileManager,我们可以对文件进行浏览.增加.打印.修改(文件属性).重命名.搜 ...

  10. php pthread安装编译,php 多线程扩展 pthreads 安装 及 使用

    1.扩展的编译安装php(Linux),编辑参数 --enable-maintainer-zts 是必选项: 2.下载 php7: http://tw2.php.net/get/php-7.1.2.t ...

最新文章

  1. neo4j图形数据库JAVA实现
  2. js高程(二)-----继承
  3. oracle连接数据的oci和thin的区别
  4. 特殊权限suid,sgid,sticky和acl(访问控制列表)参数详解
  5. 操作系统 读者-写者问题
  6. 图:经过艰苦的代码收官阶段,我的抽奖软件作品终于完工,大家欣赏.从我个人的自我判断来看,其它的抽奖软件都是浮云...
  7. centos7安装mysql客户端
  8. oracle 使用imp,oracle imp命令行的使用
  9. Python:try……excepted捕获方法
  10. win10服务器只显示4g内存,64位win10识别到了4G内存,却只用了3.1G,为什么?
  11. 2022爱分析・工业互联网实践报告
  12. Android开发:登录/注册界面的编写
  13. 阿里云服务器如何购买?三种方式可买(图文教程举例)
  14. 第1143期AI100_机器学习日报(2017-11-04)
  15. “网红”白鸦创立6年的有赞,为何不敌同样诞生于微信生态3年的拼多多?
  16. Vue 数组删除和修改元素后页面立即刷新
  17. 程序员进阶之排错和避坑方法GitChat将要出炉
  18. 8-14-粘包问题、(通过简单报头)解决粘包问题、定制复杂报头
  19. BMI 指数测试 BMI = 体重 (kg) / 身高² (m)
  20. 万字长文带你彻底搞懂DevOps

热门文章

  1. Java网络编程进阶:通过JSSE创建安全的数据通信
  2. 网站的前期策划准备工作
  3. 设置内核的运行环境之隔离的应用程序
  4. 21天学通Java调用不存在的对象或成员变量
  5. XML的常用领域及其优势
  6. 对梯度提升树(GBDT)的通俗理解
  7. csv 逗号数量不一样_lexin_common系列之CSV
  8. FJUT Home_W的gcd(乱搞)题解
  9. OPCServer:使用Matrikon OPC Server Simulation
  10. C++远征离港篇-学习笔记