博客列表 >0612-PHP匿名和闭包函数

0612-PHP匿名和闭包函数

我的博客
我的博客原创
2019年06月13日 15:19:44654浏览

实例

//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);

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议