解析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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php清除和销毁session的方法分析
Mar 19 PHP
php邮件发送的两种方式
Apr 28 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
php目录操作实例代码
2014/02/21 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
javascript事件问题
2009/09/05 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
js如何验证密码强度
2020/03/18 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
Python中单例模式总结
2018/02/20 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
个人授权委托书范本
2014/04/03 职场文书
大学生社会实践方案
2014/05/11 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
2014年度考核工作总结
2014/12/24 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
python面向对象版学生信息管理系统
2021/06/24 Python
详解Python为什么不用设计模式
2021/06/24 Python
Python进行区间取值案例讲解
2021/08/02 Python