PHP函数总结 (五)
<?php /** * 回调函数: * 指调用函数时并不是传递一个标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中 * 使用回调函数可以 将一段自己定义的功能传到函数内部使用 * 1. 变量函数(可变函数) * 变量后面有圆括号,PHP将寻找与变量的值同名的函数,并尝试执行 */ // 变量函数 function one(){ echo 'one'; } function two(){ echo 'two'; } function say($words){ echo $words; } $a = 'one'; $a(); echo '<hr>'; $a = 'two'; $a(); echo '<hr>'; /** * 借助变量函数,声明一个回调函数 * @param callback $func 传递一个函数名称字符串作为参数 */ function whattodo($func){ $func(); } whattodo('one'); echo '<hr>'; /** * 借助call_user_func_array(callable $callback , array $param_arr ),自定义回调函数 * 调用回调函数,并把一个数组参数作为回调函数的参数 */ function whattodo2(){ call_user_func_array('say',array('hello word')); } whattodo2(); echo '<hr>'; /** * 借助call_user_func(callable $callback [, mixed $parameter [, mixed $... ]]),自定义回调函数 * 把第一个参数作为回调函数调用 */ function whattodo3(){ call_user_func('say','hello word!'); } whattodo3(); echo '<hr>'; /** * 类中静态函数和对象的方法回调: * 回调类中的成员犯法:第一个参数必须使用数组,并且指定两个元素 */ class Demo{ static function eat($food){ echo $food; } } // 类名称字符串 call_user_func_array(array("Demo","eat"),array('rice'));
call_user_func_array("Demo::eat", array('rice'));
echo '<hr>'; class Demo2{ function play($play){ echo $play; } } $obj = new Demo2(); // 对象引用 call_user_func_array(array($obj,"play"),array('play games'));
call_user_func_array(array(new Demo2(),"play"),array('play games'));
分情破爱始乱弃,流落天涯思别离。
如花似玉负情意,影如白昼暗自迷。
随风浮沉千叶落,行色匆匆鬓已稀。