php 回调函数使用
回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数
使用回调函数是为了可以将一段自己定义的功能传到函数内部使用
声明回调函数的方法
class a {
public function test1(){
echo $this->test2(function($p){
return call_user_func_array(array($this,'test3'),array($p));
});
}
public function test2($fun){
echo $fun('a');
}
public function test3($p){
return $p;
}
}
call_user_func_array()函数
该函数需要两个参数。
第一个参数是要调用的函数名,第二个参数是数组类型,为参数列表。
参数列表的参数个数要和要调用的函数的参数个数相同
类中的方法为静态,回调方法为
call_user_func_array(array("类名","类中的静态方法"))
类中的方法不为静态,回调方法为
call_user_func_array(array(对象引用,"对象中方法名"))
<?php
class Speaking{
static function Speak($a,$b){
echo "He can speak ".$a;
echo "<br>";
echo "She can speak ".$b;
echo "<br>";
}
}
class Writting{
function Write($a,$b){
echo "He can write ".$a;
echo "<br>";
echo "She can write ".$b;
}
}
call_user_func_array(array("Speaking","Speak"),array("Chinese","English"));
call_user_func_array(array(new Writting(),'Write'),array("German","Portuguese"));
?>