解析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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
有关PHP中MVC的开发经验分享
May 17 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
微信公众平台DEMO(PHP)
May 04 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
Laravel 连接(Join)示例
Oct 16 PHP
基于PHP的登录和注册的功能的实现
Aug 06 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文件上传原理简单分析
2011/05/29 PHP
php获取操作系统语言代码
2013/11/04 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
javascript工具库代码
2012/03/29 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
利用python实现在微信群刷屏的方法
2019/02/21 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
《乡愁》教学反思
2014/02/18 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书