最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

PHP匿名函數(shù)和閉包的總結(jié)

標(biāo)簽:
PHP
匿名函数

匿名函数(Anonymous function),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数,最经常用作回调函数(callback)参数的值。

匿名函数的实现

匿名函数是目前是通过Closure类来实现,匿名函数会产生这个类的对象。自PHP 5.4起,这个类带有一些方法,允许在匿名函数创建后对其进行更多的控制。
<!--more-->

注意:PHP手册特别说明__invoke()这个魔术方法与匿名函数的实现过程无关。

Closure类如下:

Closure {
    /* 方法 */
    __construct ( void )
    public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] )
    public Closure bindTo ( object $newthis [, mixed $newscope = 'static' ] )
    }

Closure::__construct — 用于禁止实例化的构造函数
Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。
Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。

匿名函数例子:

$func = function($str){
    echo $str;
};
$func('hello');
闭包

闭包是指在创建时封装周围状态(如变量)的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在。

闭包的实现

将匿名函数放在一个普通函数中(也可以将匿名函数返回),就构成了一个闭包。

function closureFunc(){
    $func = function(){
        echo 'hello';
    }
    $func();
}
closureFunc();//输出:hello

闭包的使用

在匿名函数中引入局部变量时需要用到use关键字。这是因为PHP中的变量范围只在它的生效范围中。在匿名函数里并没有对变量进行定义,所以需要使用use关键字


function closureFunc1(){
    $num = 1;
    $func = function() use($num){
        echo $num;
    };
    $func();
}
closureFunc2();//输出

闭包返回匿名函数并传参

function closureFunc2(){
    $num = 1;
    $func = function($str) use($num){
        echo $num;
        echo $str;
    };
    return $func;
}
$func = $closureFunc2();
$func('hello');//输出 1 hello

以上,欢迎讨论~

點(diǎn)擊查看更多內(nèi)容
6人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消