解析php中如何调用用户自定义函数


Posted in PHP onAugust 06, 2013

先放上来别人的例子吧:
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    
?>   
  
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  

另:call_user_func函数和call_user_func_array函数都支持引用。
<?php
function increment(&$var)
{
    $var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>
PHP 相关文章推荐
不错的一篇面向对象的PHP开发模式(简写版)
Mar 15 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
深入PHP curl参数的详解
Jun 17 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
php无限遍历目录示例
Feb 21 PHP
php中fsockopen用法实例
Jan 05 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
php远程下载类分享
Apr 13 PHP
php数组冒泡排序算法实例
May 06 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
使用php实现截取指定长度
Aug 06 #PHP
php 如何获取数组第一个值
Aug 06 #PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 #PHP
php实现统计邮件大小的方法
Aug 06 #PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 #PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 #PHP
深入解析PHP中逗号与点号的区别
Aug 05 #PHP
You might like
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
简单实用的全选反选按钮例子
2013/10/18 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
Python代码的打包与发布详解
2014/07/30 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
python分布式计算dispy的使用详解
2019/12/22 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
公司行政经理岗位职责
2013/12/24 职场文书
优良学风班总结材料
2014/02/08 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
殡葬服务心得体会
2014/09/11 职场文书
员工辞职信范文大全
2015/05/12 职场文书
同事去世追悼词
2015/06/23 职场文书
客户答谢会致辞
2015/07/30 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript