解析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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
PHP面向对象分析设计的经验原则
Sep 20 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
php的闭包(Closure)匿名函数详解
Feb 22 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
详解no input file specified 三种解决方法
Nov 29 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
应届生护士求职信
2013/11/01 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
三好学生事迹材料
2014/12/24 职场文书
数学教师个人总结
2015/02/06 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
详解Python内置模块Collections
2022/03/22 Python
Python实现聚类K-means算法详解
2022/07/15 Python