解析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的控制语句
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
自动分页的不完整解决方案
Jan 12 PHP
php SQL Injection with MySQL
Feb 27 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
Linux安装配置php环境的方法
Jan 14 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
搜索附近的人PHP实现代码
Feb 11 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数组去重的函数代码
2013/02/03 PHP
php二维数组排序详解
2013/11/06 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
使用Python生成XML的方法实例
2017/03/21 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
python实现简单颜色识别程序
2020/02/19 Python
物业管理大学生个人的自我评价
2013/10/10 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
暂停营业通知
2015/04/25 职场文书
征求意见函
2015/06/05 职场文书
大学生读书笔记大全
2015/07/01 职场文书
《月光曲》教学反思
2016/02/16 职场文书
导游词之千岛湖
2019/09/23 职场文书
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript