call_user_func_array
函数名可以用参数的方式传递进去,因而调用不同函数。 配合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相关推荐
- php call_user_func_array 性能,php-call_user_func_array是否太慢?
您有很多问题要解决-而call_user_func_array不是其中之一. 看看你的查询 这是您要构建的查询: SELECT * FROM trabajosEnSubasta WHERE MATCH ...
- call_user_func_array 笔记
//call_user_func_array 用一个数组作为参数调用一个回调函数,返回值为回调函数执行的结果或者为false(回调函数执行有error时) //class_user_func_arra ...
- PHP中call user func()和call_user_func_array()调用自定义函数小结
call_user_func() 和 call_user_func_array(),通过传入字符串函数,可以调用自定义函数,并且支持引用,都允许用户调用自定义函数并传入一定的参数: 1.mixed c ...
- PHP中的call_user_func_array
场景一:参数数目不确定 函数的参数是用户传入的,而且参数的数目不确定.如果不用call_user_func_array你会怎么做?一些PHP框架可以将$_GET参数自动映射到方法,就是这样实现的. 场 ...
- call_user_func和call_user_func_array的用法
call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] ) 调用第一个参数所提供的用户自定义的函数. 返回值: ...
- 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():调用一个回调函数处 ...
- PHP函数call_user_func和call_user_func_array详解
今天在群里面,有个叫lewis的在问call_user_func_array的用法,因为之前一直没有用过,也不能说什么,于是看一下手册,发现是这么写的: call_user_func_array (P ...
- 简单理解call_user_func和call_user_func_array两个函数
call_user_func():调用一个回调函数处理字符串, 可以用匿名函数,可以用有名函数,可以传递类的方法, 用有名函数时,只需传函数的名称 用类的方法时,要传类的名称和方法名 传递的第一个参数 ...
- php set medias,laravel5.1 -- Integrate FileManager and CKeditor into laravel
FileManager中文名叫文件管理器,也叫文件浏览器,它给我们提供了一个可视化的界面来管理文件和文件夹.利用FileManager,我们可以对文件进行浏览.增加.打印.修改(文件属性).重命名.搜 ...
- php pthread安装编译,php 多线程扩展 pthreads 安装 及 使用
1.扩展的编译安装php(Linux),编辑参数 --enable-maintainer-zts 是必选项: 2.下载 php7: http://tw2.php.net/get/php-7.1.2.t ...
最新文章
- neo4j图形数据库JAVA实现
- js高程(二)-----继承
- oracle连接数据的oci和thin的区别
- 特殊权限suid,sgid,sticky和acl(访问控制列表)参数详解
- 操作系统 读者-写者问题
- 图:经过艰苦的代码收官阶段,我的抽奖软件作品终于完工,大家欣赏.从我个人的自我判断来看,其它的抽奖软件都是浮云...
- centos7安装mysql客户端
- oracle 使用imp,oracle imp命令行的使用
- Python:try……excepted捕获方法
- win10服务器只显示4g内存,64位win10识别到了4G内存,却只用了3.1G,为什么?
- 2022爱分析・工业互联网实践报告
- Android开发:登录/注册界面的编写
- 阿里云服务器如何购买?三种方式可买(图文教程举例)
- 第1143期AI100_机器学习日报(2017-11-04)
- “网红”白鸦创立6年的有赞,为何不敌同样诞生于微信生态3年的拼多多?
- Vue 数组删除和修改元素后页面立即刷新
- 程序员进阶之排错和避坑方法GitChat将要出炉
- 8-14-粘包问题、(通过简单报头)解决粘包问题、定制复杂报头
- BMI 指数测试 BMI = 体重 (kg) / 身高² (m)
- 万字长文带你彻底搞懂DevOps