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 文件状态缓存带来的问题
Dec 14 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
yii操作cookie实例简介
Jul 09 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
PHP 导出Excel示例分享
Aug 18 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
PHP Web表单生成器案例分析
Jun 02 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
实例讲解React 组件生命周期
2020/07/08 Javascript
详解Django中Request对象的相关用法
2015/07/17 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
详解Python高阶函数
2020/08/15 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
介绍一下Make? 为什么使用make
2016/07/31 面试题
外贸业务员求职自荐信分享
2013/09/21 职场文书
主题班会演讲稿
2014/05/22 职场文书
公司应聘求职信
2014/06/21 职场文书
小学亲子活动总结
2014/07/01 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2015年教务工作总结
2015/05/23 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
索尼ICF-36收音机评测
2022/04/30 无线电