闭包函数的几种使用类型

原创 2018-12-01 15:01:48 272
摘要:<?php$demo1 = function ($name){    return $name . '张喜望';};echo $demo1('闷骚男叫');echo '<hr>';//匿名函数也有自己的作用域,除了传参,还有什么方式引用外部变量$xiwang = '张喜望';$demo2 = fu

<?php
$demo1 = function ($name)
{
   return $name . '张喜望';
};
echo $demo1('闷骚男叫');
echo '<hr>';

//匿名函数也有自己的作用域,除了传参,还有什么方式引用外部变量
$xiwang = '张喜望';

$demo2 = function ($name) use ($xiwang)
{
   return '孙洪凯最爱的人是:' . $xiwang . $name;
};
echo $demo2('吧');

echo '<hr>';

//匿名函数其实就是一个普通变量    1.局部变量 2.函数的参数 3.函数返回值

//1. 匿名函数当局部变量来使用
$func1 = function ()
{
   $name = '喜望哥哥';
   $str = function () use ($name)//在函数中声明一个匿名函数
   {
     return $name . '这里有坨屎快来我们一起吃吧';
   };
   return $str();
};
echo $func1();
echo '<hr>';

//2. 将匿名函数当做函数的参数来使用
$name = '喜望哥哥';
$str = function () use ($name)//在函数中声明一个匿名函数
{
   return $name . '这里有坨屎快来我们一起吃吧666';
};
$func2 = function ( callable $str)
{
   return $str();
};
echo $func2($str);
echo '<hr>';

//3. 将匿名函数当做函数的返回值来使用
$func3 = function ()
{
   $name = '喜望哥哥';
   $str = function () use ($name)//在函数中声明一个匿名函数
   {
       return $name . '这里有一车屎快来我们一起吃吧66666';
   };
//    return $str();
   return $str;
};
//$func3()返回值是一个匿名函数的定义:$str
echo $func3()();

批改老师:韦小宝批改时间:2018-12-01 15:25:59
老师总结:不错不错!写的很棒!下次记得给代码加上高亮哦!课后要多多练习!继续加油吧!

发布手记

热门词条