php通过字符串调用函数示例


Posted in PHP onMarch 02, 2014

1. call_user_func

function a($b,$c){
  echo $b;
  echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");//显示 111 222 333 444
?>
 

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:

class a {
  function b($c){
    echo $c;
  }
}
call_user_func(array("a", "b"),"111");//显示 111
?>

2. call_user_func_array

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
?>

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

function a(&$b){
  $b++;
}
$c = 0;
call_user_func('a', &$c);
echo $c;//显示 1
call_user_func_array('a', array(&$c));
echo $c;//显示 2
PHP 相关文章推荐
PHP中路径问题的解决方案
Oct 09 PHP
网络资源
Oct 09 PHP
dede全站URL静态化改造[070414更正]
Apr 17 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
PHP中捕获超时事件的方法实例
Feb 12 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
php多维数组去掉重复值示例分享
Mar 02 #PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 #PHP
PHP 字符串长度判断效率更高的方法
Mar 02 #PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 #PHP
PHP代码优化之成员变量获取速度对比
Feb 28 #PHP
php递归方法实现无限分类实例代码
Feb 28 #PHP
PHP中常用的转义函数
Feb 28 #PHP
You might like
网站防止被刷票的一些思路与方法
2015/01/08 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
JavaScript静态的动态
2006/09/18 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
django输出html内容的实例
2018/05/27 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python打印不合法的文件名
2020/07/31 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
奠基仪式致辞
2015/07/30 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server