解析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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
php5中类的学习
Mar 28 PHP
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
php去除HTML标签实例
Nov 06 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
php猜单词游戏
Sep 29 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
PHP图片添加水印功能示例小结
Oct 03 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
用PHP的反射实现委托模式的讲解
Mar 22 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实现显示照片exif信息的方法
2014/07/11 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
JS作用域深度解析
2016/12/29 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python 类的继承实例详解
2017/03/25 Python
Python递归函数定义与用法示例
2017/06/02 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python标识符命名规范原理解析
2020/01/10 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
python利用opencv保存、播放视频
2020/11/02 Python
西雅图的买手店:Totokaelo
2019/10/19 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
通信研究生自荐信
2014/02/01 职场文书
新教师工作感言
2014/02/16 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
2014年减负工作总结
2014/12/10 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
情况说明书怎么写
2015/10/08 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python