<?php /** * Created by PhpStorm. * User: Jason * Date: 2019/3/31 * Time: 14:06 */ // 普通函数 function bigger($a,$b) { return "$a,$b 中较大的数是:".($a > $b ? $a : $b ); } // 声明函数调用bigger function main($big) { return $big(12,32); } // 调用函数,把函数名称写入即可 echo main('bigger').'<hr>'; // 实际中是使用匿名函数完成函数注入 $bigger = function($a,$b) { return "$a,$b 中较大的数是:".($a > $b ? $a : $b ); }; // 自定义函数 function main1($big) { return $big(23,52); } // 调用匿名函数 echo main1($bigger).'<hr>'; /** * php内置了两个双胞胎函数:用来执行回调 * 1、call_user_func(); 单个参数传参 * 2、call_user_func_array(); 数组形式传参 */ // 调用普通函数 echo call_user_func('bigger',233,532).'<hr>'; // 调用匿名函数 echo call_user_func($bigger,231,132).'<hr>'; // 工作中常用的是call_user_func_array(); echo call_user_func_array($bigger,[122,324]).'<hr/>'; // 类 class demos { public static function getMethod() { return '方法是:'.__METHOD__; } public function getAge(){ return 28; } } // 可以调用类中的方法 echo call_user_func(['demos','getMethod']).'<hr>'; echo call_user_func('demos::getMethod').'<hr>'; // 调用不到公有方法 echo call_user_func(['demos','getAge']);