溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中閉包函數(shù)的作用是什么

發(fā)布時(shí)間:2021-06-08 11:32:40 來源:億速云 閱讀:260 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(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í)候,他只能輸出頁面變量而不能輸出父類變量。

php中閉包函數(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é)果如下:

php中閉包函數(shù)的作用是什么

因此這個(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ò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(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)容。

AI