php中的回调函数

php中提供了两个内置的回调函数call_user_func()、call_user_func_array()。

这两个函数的区别是:

call_user_func_array(callable $callback,array $param_arr)是以数组的形式接受回调函数和参数的。

call_user_func($callback, 参数1, 参数2)参数的个数是根据回调函数来决定的。

下面是一些常见的回调函数使用的例子:

//普通函数
function f1($param1,$param2)
{
   echo ‘函数‘.__FUNCTION__.‘被执行,传入的参数是:‘.$param1.‘ ‘.$param2;
   echo "<br/>";
}    

//通过call_user_func调用函数f1
call_user_func(‘f1‘,‘han‘,‘wen‘);  

//通过call_user_func_array调用函数
call_user_func_array(‘f1‘,array(‘han‘,‘wen‘));
class A{
   public $name;    

   function show($param)
   {
       echo ‘传入参数是:‘.$param."<br/>";
       echo ‘my name is:‘.$this->name;
       echo "<br/>";
   }
   function show1($param1,$param2)
   {
       echo __METHOD__.‘方法被执行,传入参数是:‘.$param1.‘ ‘.$param2."<br/>";
   }
   public static function show2($param1,$param2)
   {
       echo __METHOD__.‘方法被执行,传入参数是:‘.$param1.‘ ‘.$param2."<br/>";
   }    

}
//调用类中非静态成员函数,该成员函数中有$this调用了对象中的成员
$a = new A;
$a->name = ‘wen‘;
call_user_func_array(array($a,‘show‘,),array(‘han!‘));  

//调用类中非静态成员函数,没有对象被创建,该成员函数中不能有$this
call_user_func_array(array(‘A‘,‘show1‘,),array(‘han!‘,‘wen‘));    

//调用类中静态成员函数
call_user_func_array(array(‘A‘,‘show2‘),array(‘param1‘,‘param2‘));
时间: 2024-10-26 21:48:38

php中的回调函数的相关文章

JavaScript中的回调函数

在学习JavaScript的过程中遇到了很多,使用到回调函数的例子,出现了许多疑问,就由一个栗子开始吧: 在JavaScript中接触的第一个回调函数是在setInterval()和setTimeout()中出现的: 1 var num = 10; 2 3 var interValId = setInterval(function (){ 4 console.log(num); 5 num--; 6 if(num==0){ 7 clearInterval(interValId); 8 } 9 }

hibernateTemplate中的回调函数

hibernateTemplate中的回调函数:可以发现在hibernateTemplate类中所有对数据库的操作实现都是利用的回调函数hibernateTemplate中回调函数源码: public <T> T execute(HibernateCallback<T> action) throws DataAccessException { return doExecute(action, false); } public <T> T executeWithNativ

理解与使用Javascript中的回调函数 -2

在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短的关于callback的使用示例. 函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则.在javascript中,函数是比较奇怪的,但它确确实实是对象.确切地说,函数是用 Function()构造函数创建的Function对象.Function对象包含一个字符串,字符串

Javascript 中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用.(只是在js中,因为其它的语言中有指针这个概念). 举一个简单的例子,当我们在统计账单的时候就要整理材料这些,然后就需要计算器,计算器我们想象成为一个可以实现计算的函数.统计账单是另外的另一个函数,当统计账单的时候就会需要计算器这个函数的支持,其实这就是一个简单的回调.可以按这个理解. 下来我借用网上的一个例子: //先定义一个函数fun1 functi

理解和使用 JavaScript 中的回调函数

原文:http://javascriptissexy.com/ 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实际上是一种对象,它可以"存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值". 因为function是内置对象,我们可以将它作为参数传递给另一个函数,延迟到函数中执行,甚至执行后

Javascript中的回调函数和匿名函数的回调

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 匿名函数自调的意义: 1.营造了一个封闭的空间 2.防止变量冲突 3.有选择性的对外开发(第三方框架都是对js这样封装的) */ //===

类中的回调函数

失败原因 由于类的成员函数有隐含的this指针传递,从而导致一个CALLBACK型的成员函数安装时函数参数个数不匹配. 解决方法 1)将回调函数挪出类外,并声明为友元 2)将回调函数生命为静态成员函数(使用回调函数的某个参数传递当前对象的this指针) 类中的回调函数,码迷,mamicode.com

【JavaScript】理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在Javascript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在Javascript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段Javascript或者jQuery代码,但是对于许多开发者来说它任然是一个谜.在阅读本文

理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在Javascript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在 Javascript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段Javascript或者jQuery代码,但是对于许多开发者来说 它任然是一个谜.在阅读

ajax中调用回调函数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="javascript:void(0);" id="send">test</a> </bo