call_user_function()方法的使用
call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )
调用第一个参数所提供的用户自定义的函数。
返回值:返回调用函数的结果,或FALSE。
example
:
- <?php
- function eat($fruit) //参数可以为多个
- {
- echo "You want to eat $fruit, no problem";
- }
- call_user_func('eat', "apple"); //print: You want to eat apple, no problem;
- call_user_func('eat', "orange"); //print: You want to eat orange,no problem;
- ?>
调用类的内部方法:
- <?php
- class myclass {
- function say_hello($name)
- {
- echo "Hello!$name";
- }
- }
- $classname = "myclass";
- //调用类内部的函数需要使用数组方式 array(类名,方法名)
- call_user_func(array($classname, 'say_hello'), 'dain_sun');
- //print Hello! dain_sun
- ?>
call_user_func_array 函数和 call_user_func 很相似,只是
使
用了数组
的传递参数形式,让参数的结构更清晰:
call_user_func_array
( callback
$function
, array
$param_arr
)
类中的回调函数最好是static的
数组中的第一个参数(类名)也可以用实例化的对象来代替。
调用用户定义的函数,参数为数组形式。
返回值:返回调用函数的结果,或FALSE。
- <?php
- function debug($var, $val)
- {
- echo "variable: $var <br> value: $val <br>";
- echo "<hr>";
- }
- $host = $_SERVER["SERVER_NAME"];
- $file = $_SERVER["PHP_SELF"];
- call_user_func_array('debug', array("host", $host));
- call_user_func_array('debug', array("file", $file));
- ?>
调用类的内部方法和 call_user_func 函数的调用方式一样,都是使用了数组的形式来调用。
exmaple:
- <?php
- class test
- {
- function debug($var, $val)
- {
- echo "variable: $var <br> value: $val <br>";
- echo "<hr>";
- }
- }
- $host = $_SERVER["SERVER_NAME"];
- $file = $_SERVER["PHP_SELF"];
- call_user_func_array(array('test', 'debug'), array("host", $host));
- call_user_func_array(array('test', 'debug'), array("file", $file));
- ?>
注: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
- ?>
call_user_function()方法的使用的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- [BOT] 一种android中实现“圆角矩形”的方法
内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
随机推荐
- __thread关键字[转]
自 http://blog.csdn.net/liuxuejiang158blog/article/details/14100897 __thread是GCC内置的线程局部存储设施,存取效率可以和全局 ...
- 启动hadoop,没有启动namenode进程。log4j:ERROR setFile(null,true) call faild.
启动hadoop,没有启动namenode进程.log4j:ERROR setFile(null,true) call faild. 解决办法: cd /home/hadoop/hadoop-en ...
- 用CMake构建Qt5的Visual Studio工程
使用Visual Studio构建Qt工程的方法有很多种,可以使用Visual Studio自带的功能手动创建配置工程,也可以创建pro文件,然后通过VS的Qt插件导入进行创建.还有一种方式是通过CM ...
- redis 事务
概述 相信学过MySQL等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行.为什么会有这样的需求呢?看看下面的场景: 微博是一个弱关系型社交网络,用户之 ...
- C# Mysql You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ????
有几年没用过MySql数据了,今天在使用C#访问MySql数据库时出现了一个小插曲. 错误提示: You have an error in your SQL syntax; check the man ...
- 选项卡切换:自动定时&主动触发事件
最初学习的是手动触发事件,添加的是onmouseover,其中index是关键,tab标签与现实内容的div索引一一对应,遍历tab标签,当鼠标移动到某标签时,触发对应的内容div显示.for(var ...
- python的路径
原来可以这么用和那么用 os.mkdir('d:\\su\\help1') os.mkdir('d:/su/help') 为啥提供俩种呢 真乱
- eclipse连接外部tomcat进行debug
首先,在tomcat/bin目录下找到编辑catalina.bat,在 rem $Id: catalina.bat 1344732 2012-05-31 14:08:02Z kkolinko $rem ...
- js 下载图片与下载文件的方式一样;保存至本地 ASP.NET 方式
<asp:Button ID="btnDownLoad" runat="server" style="display: none" T ...
- windows访问lnmp配置的虚拟域名
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxzkq.blog.51cto.com/9379412/1630217 实 ...