解析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合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
浅析iis7.5安装配置php环境
May 10 PHP
php实现简易聊天室应用代码
Sep 23 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
thinkPHP通用控制器实现方法示例
Nov 23 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 Undefined index的问题
2009/06/01 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
js实现简单放大镜效果
2020/03/07 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
Python模块常用四种安装方式
2020/10/20 Python
python的setattr函数实例用法
2020/12/16 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
年终晚会主持词
2014/03/25 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
新课培训心得体会
2014/09/03 职场文书
工资收入证明
2014/10/07 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
婚内分居协议书范文
2014/11/26 职场文书
国庆庆典邀请函
2015/02/02 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang