您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)php中閉包函數(shù)的作用是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
什么是閉包函數(shù):
在子函數(shù)內(nèi)部使用通過use關(guān)鍵字使用父函數(shù)的變量,這種方式就是閉包函數(shù)
格式:
function 父函數(shù)(){ //父函數(shù)的局部變量 $var-值 //聲明廬名函數(shù)并且使用use格式實(shí)現(xiàn)閉包 變量- function() use(父元素變量){ }; }
我們學(xué)的匿名函數(shù)以及今天要了解的閉包函數(shù),在我們平常寫代碼的時(shí)候用的不是很多,一般他們會(huì)出現(xiàn)在編寫框架的時(shí)候。
具體我們以代碼為例,展開討論:
<?php /******* 閉包函數(shù)************/ //定義一個(gè)變量 $pph = ' 這是頁面及的變量'; function father1(){ //父函數(shù)的一個(gè)局部變量 $pph = '不想上班' ; function son1( ){ global $pph; echo $pph; } son(); } father1(); ?>
代碼解析:
首先,我們依然是先定義一個(gè)變量$pph(頁面及的變量),緊接著定義一個(gè)父函數(shù)的局部變量[function father()],此時(shí),我們內(nèi)外部都有變量,然后,我們global $pph,輸出(echo)$pph,輸出的結(jié)果是父類還是頁面級(jí)的?當(dāng)我們運(yùn)行結(jié)果發(fā)現(xiàn),輸出結(jié)果是頁面級(jí)的,(代碼如下所示)因此,我們得出一旦調(diào)用全局變量的時(shí)候,他只能輸出頁面變量而不能輸出父類變量。
當(dāng)我們寫成匿名函數(shù)的形式,我們可以使用父元素的變量,我們需要使用use關(guān)鍵字,但是當(dāng)我們運(yùn)行時(shí),會(huì)發(fā)現(xiàn)錯(cuò)誤提示
代碼如下所示:
function father(){ $pph = '不想上班'; function son() use($pph){ echio $pph; } son(); } father();
運(yùn)行結(jié)果如下:
因此這個(gè)是錯(cuò)誤的,無法實(shí)現(xiàn);
使用匿名函數(shù)的方式實(shí)現(xiàn)閉包;
function father(){ $pph = '不想上班'; $son = function () use($pph){ echo $pph; }; //調(diào)用內(nèi)部函數(shù) $son(); } father();
感謝各位的閱讀!關(guān)于“php中閉包函數(shù)的作用是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。