解析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
基于mysql的bbs设计(一)
Oct 09 PHP
PHP安装攻略:常见问题解答(二)
Oct 09 PHP
PHP学习笔记之一
Jan 17 PHP
php define的第二个参数使用方法
Nov 04 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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
Search Engine Friendly的URL设计
2006/10/09 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python实现字符串和数字拼接
2020/03/02 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
个人实用的自我评价范文
2013/11/23 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
Mysql MVCC机制原理详解
2021/04/20 MySQL
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python