日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHP匿名函數(shù)(閉包函數(shù))
匿名函數(shù)(Anonymous functions)就是沒有函數(shù)名的函數(shù),也叫閉包函數(shù)(closures),是在 php5.3 中新增一個(gè)特性。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、雞東網(wǎng)絡(luò)推廣、微信小程序開發(fā)、雞東網(wǎng)絡(luò)營(yíng)銷、雞東企業(yè)策劃、雞東品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供雞東建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

PHP 允許臨時(shí)創(chuàng)建一個(gè)沒有指定名稱的函數(shù)。匿名函數(shù)通常用在回調(diào)函數(shù)中,同時(shí)匿名函數(shù)也可以賦值給一個(gè)變量后使用,還能像其他任何 PHP 對(duì)象那樣傳遞,不過(guò)匿名函數(shù)仍然是函數(shù),因此可以調(diào)用,并且可以傳入?yún)?shù)。

注意:理論上講,閉包和匿名函數(shù)是不同的概念,不過(guò) PHP 將其視作相同的概念,所以提到閉包時(shí),指的就是匿名函數(shù),反之亦然。

創(chuàng)建匿名函數(shù)

創(chuàng)建匿名函數(shù)很簡(jiǎn)單,其語(yǔ)法結(jié)構(gòu)如下所示:

function (參數(shù)列表) {
    ...
}

可以看出,匿名函數(shù)與普通函數(shù)非常類似,同樣可以接受參數(shù),并且可以有返回值,只是匿名函數(shù)在聲明時(shí)會(huì)省略函數(shù)名。

【示例】下面通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)演示一下如何創(chuàng)建匿名函數(shù),代碼如下所示:

運(yùn)行結(jié)果如下:

http://c.biancheng.net/php/

通過(guò)上面的示例可以看出,匿名函數(shù)可以作為變量的值來(lái)使用。此時(shí) PHP 會(huì)自動(dòng)把此種表達(dá)式轉(zhuǎn)換成內(nèi)置類 Closure 的對(duì)象實(shí)例。把一個(gè) closure 對(duì)象賦值給一個(gè)變量的方式與普通變量賦值的語(yǔ)法是一樣的,最后也要加上分號(hào)
;。

實(shí)際開發(fā)中,我們通常將匿名函數(shù)當(dāng)做函數(shù)或方法的回調(diào)使用,在很多 PHP 內(nèi)置函數(shù)中都會(huì)用到匿名函數(shù),比如 array_map 和 preg_replace_callback,示例代碼如下:

';
    print_r($result);
?>

運(yùn)行結(jié)果如下:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
    [5] => 36
)

use 關(guān)鍵字

使用 use 關(guān)鍵字,閉包函數(shù)可以實(shí)現(xiàn)從父級(jí)作用域中繼承變量,但是從 php7.1 開始,不支持繼承預(yù)定義變量和 $this。

【示例】下面通過(guò)示例來(lái)演示 use 關(guān)鍵字的使用,代碼如下所示:

';
        $url     = 'http://c.biancheng.net/php/';
        $func    = function() use ($website) {
            echo '$website = '.$website;
            echo '$url = '.$url;
        };
        $func();
    }
    demo();
?>

運(yùn)行結(jié)果如下:

$website = C語(yǔ)言中文網(wǎng)
$url =

通過(guò)運(yùn)行結(jié)果可以看出,$url 并沒有通過(guò) use 關(guān)鍵字繼承到匿名函數(shù)中,所以無(wú)法打印 $url 的值。

需要注意的是,匿名函數(shù)雖然可以繼承父級(jí)作用域中的變量,但是在匿名函數(shù)中修改變量的值不會(huì)對(duì)父級(jí)作用域中的變量造成影響,示例代碼如下:

';
        };
        $func();
        echo '匿名函數(shù)外 $num 的值為:'.$num;
    }
    demo();
?>

運(yùn)行結(jié)果如下:

匿名函數(shù)中 $num 的值為:2
匿名函數(shù)外 $num 的值為:1

如果想要在修改匿名函數(shù)繼承的變量的同時(shí),同樣修改其父級(jí)作用域中的變量,則需要在變量名的前面添加 & 符號(hào),類似于函數(shù)中的引用傳遞。示例代碼如下:

';
        };
        $func();
        echo '匿名函數(shù)外 $num 的值為:'.$num;
    }
    demo();
?>

運(yùn)行結(jié)果如下:

匿名函數(shù)中 $num 的值為:2
匿名函數(shù)外 $num 的值為:2


本文標(biāo)題:PHP匿名函數(shù)(閉包函數(shù))
網(wǎng)址分享:http://m.5511xx.com/article/dpeossc.html