实例
//demo9 : 匿名函数和闭包函数: //闭包函数:有权访问另一个函数作用域中变量的函数,创建闭包的常见方式,就是在一个函数内部创建另一个函数; //匿名函数:就是一个没有名称的函数,他的函数直接赋值给一个变量; //1、匿名函数 ,结尾必须加分号。 $name = '我是一个大坏蛋'; echo 'demo9_1:<br>'; $good = function (){ return '我是一个好人'; }; echo $good() . '<hr>'; $qq = '******************************************************'; echo 'demo9_1_1:<br>'; // 匿名函数使用use(外部变量)来在内部使用 $good1 =function() use($name){ return 'good1 = '.$name; }; echo $good1().'<hr>'; $qq = '******************************************************'; echo 'demo9_2:<br>'; //2、闭包函数 : ues() 只是获取父作用域中的变量,需要层层传递 ,闭包有两种方式 $msg = 'hello'; $ms = function()use($msg){ $name = '王霸'; echo $msg; echo "\n---------\n"; $ui = function () use($msg,$name){ //闭包方式1:函数赋值给变量 // return function() use($msg,$name) { //闭包方式2 ,没有函数名就得直接用return echo $msg . ' : ' ; echo $name; }; echo $ui(); //闭包方式1 在函数内部调用,外部调用一次就可 }; echo $ms() . '<hr>'; //方式1 调用 //echo $ms()(); //方式2 调用 //demo10 : 数组内容排序 echo 'demo10:<br>'; $arr1 = [5,2,7,3,1,10,8,3,2,5]; //var_dump($arr1); usort($arr1,function($a,$b) { //return $a - $b; //正序排列; return $a <=> $b; //倒叙排列 -或者 <=>都可以,后者是PHP7.0新语法 }); print_r($arr1);
运行实例 »
点击 "运行实例" 按钮查看在线实例