解析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快速url重写更新版[需php 5.30以上]
Apr 25 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 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
长波知识介绍
2021/03/01 无线电
PHP安全编程之加密功能
2006/10/09 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP异常处理Exception类
2015/12/11 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
python快速排序代码实例
2013/11/21 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python selenium firefox使用详解
2019/02/26 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
股份合作协议书范本
2014/04/14 职场文书
家长建议怎么写
2014/05/15 职场文书
多人股份制合作协议书
2016/03/19 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python