解析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下进行数组合并的代码
Jul 22 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
php控制文件下载速度的方法
Mar 24 PHP
php检查页面是否被百度收录
Oct 28 PHP
深入php内核之php in array
Nov 10 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
php strftime函数的详细用法
Jun 21 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
Nginx+php配置文件及原理解析
Dec 09 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绘制一个扇形的方法
2015/01/24 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
Python3 操作符重载方法示例
2017/11/23 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
python实现两张图片的像素融合
2019/02/23 Python
超简单的Python HTTP服务
2019/07/22 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
党员志愿者活动总结
2014/06/26 职场文书
商务经理岗位职责
2014/07/30 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis