解析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数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
PHP unset函数原理及使用方法解析
Aug 14 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
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
PHP 透明水印生成代码
2012/08/27 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP生成随机密码类分享
2014/06/25 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python中变量交换的例子
2014/08/25 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
保洁主管岗位职责
2013/11/20 职场文书
前台接待岗位职责
2013/12/03 职场文书
环保专项行动方案
2014/05/12 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
教师节简报
2015/07/20 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
python3实现常见的排序算法(示例代码)
2021/07/04 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技