解析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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
用PHP 4.2书写安全的脚本
Oct 09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
php合并数组中相同元素的方法
Nov 13 PHP
浅析php工厂模式
Nov 25 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 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 远程关机实现代码
2009/11/10 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
PHP与以太坊交互详解
2018/08/24 PHP
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
Vue函数式组件的应用实例详解
2019/08/30 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python反转序列的方法实例分析
2018/03/21 Python
python 以16进制打印输出的方法
2018/07/09 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
农田水利实习自我鉴定
2013/09/19 职场文书
消防安全宣传口号
2014/06/10 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
优秀班主任材料
2014/12/16 职场文书
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript