亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP 閉包之變量作用域

thekingisalwaysluc / 3270人閱讀

摘要:以上結(jié)果會輸出那么可以看到被作為了變量通過傳遞給了匿名函數(shù)作為參數(shù)使用如果去掉的注釋,那么以上結(jié)果會輸出將上面的函數(shù)改寫為以上結(jié)果會輸出說明在中第二次為賦值的時候,并沒有傳遞的到函數(shù)里面去。

??在項目中,難免會遇到閉包的形式,那么在閉包中,變量的作用域到底是怎么樣的呢。下面有幾個簡單的例子。

e1
function test_1()
{
    $a = "php";
    $func =  function ($b) use ($a)
    {
       // $a = "java";
        echo $b."_".$a;
    };
    return $func;

}
$test = test_1();
$test("hello");

以上結(jié)果會輸出 hello_php 那么可以看到 $a 被作為了變量 通過use傳遞給了 匿名函數(shù) func 作為參數(shù)使用;如果去掉$a = "java"的注釋,那么以上結(jié)果會輸出 hello_java

e2:將上面的函數(shù)改寫為
function test_2()
{
    $a = "php";
    $func =  function ($b) use ($a)
    {
       // $a = "go";
        echo $b."_".$a;
    };
    $a = "java";
    return $func;
}
$test = test_2();
$test("hello");

以上結(jié)果會輸出 hello_php 說明在test_2中第二次為$a賦值的時候,并沒有傳遞的到 func函數(shù)里面去。
同樣的如果去掉 $a = "go";那么以上結(jié)果會輸出 hello_go

e3:現(xiàn)在為$a 加上引用
function test_3()
{
    $a = "php";
    $func =  function ($b) use (&$a)
    {
        //$a = "go";
        echo $b."_".$a;
    };
    $a = "java";
    return $func;
}
$test = test_3();
$test("hello");

以上結(jié)果會輸出 hello_java 說明在地址引用的時候 變量 a 的值會傳遞到 函數(shù)func里面去。
同樣的如果去掉 $a = "go";那么以上結(jié)果會輸出 hello_go

以上三個簡單的測試,很明白的說明的閉包里面參數(shù)的作用域。
在沒有使用地址引用的時候 匿名函數(shù)的變量值,不會隨著外部變量的改變而改變。(閉包的意義)
在使用了地址引用之后,參數(shù)值會被外部函數(shù)的參數(shù)值所改變

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29376.html

相關(guān)文章

  • JavaScript深入閉包

    摘要:深入系列第八篇,介紹理論上的閉包和實踐上的閉包,以及從作用域鏈的角度解析經(jīng)典的閉包題。定義對閉包的定義為閉包是指那些能夠訪問自由變量的函數(shù)。 JavaScript深入系列第八篇,介紹理論上的閉包和實踐上的閉包,以及從作用域鏈的角度解析經(jīng)典的閉包題。 定義 MDN 對閉包的定義為: 閉包是指那些能夠訪問自由變量的函數(shù)。 那什么是自由變量呢? 自由變量是指在函數(shù)中使用的,但既不是函數(shù)參數(shù)也...

    caige 評論0 收藏0
  • javascript閉包不完全探索記錄01:閉包?啥餡的?

    摘要:閉包一詞來源于以下兩者的結(jié)合要執(zhí)行的代碼塊由于自由變量被包含在代碼塊中,這些自由變量以及它們引用的對象沒有被釋放和為自由變量提供綁定的計算環(huán)境作用域。在以及及以上等語言中都能找到對閉包不同程度的支持。 溫馨提示:作者的爬坑記錄,對你等大神完全沒有價值,別在我這浪費生命 閉包,好吃嗎 ? 第一次聽到這個詞,很不幸是在一次面試中,可想而知結(jié)果很細碎,從此閉包和跨域在我匱乏的前端知識中成為了...

    TANKING 評論0 收藏0
  • PHP新特性閉包、匿名函數(shù)

    摘要:閉包閉包是什么閉包和匿名函數(shù)在中被引入。可以將匿名函數(shù)和閉包視作相同的概念。閉包和字符串或整數(shù)一樣,是一等值類型。何時使用我們通常把閉包當做函數(shù)和方法的回調(diào)使用。 閉包 閉包是什么? 1).閉包和匿名函數(shù)在PHP5.3中被引入。2).閉包是指在創(chuàng)建時封裝函數(shù)周圍狀態(tài)的函數(shù),即使閉包所在的環(huán)境不存在了,閉包封裝的狀態(tài)依然存在,這一點和Javascript的閉包特性很相似。3).匿名函數(shù)就...

    luzhuqun 評論0 收藏0
  • 談談我所理解的閉包,js、php、golang里的closure

    摘要:當初看這個解釋有點懵逼,理解成閉包就是函數(shù)中的函數(shù)了。里的閉包最近不滿足于只干前端的活,開始用起了。里的閉包最近在學習語言,讓我們來看一下語言里的閉包。在中,閉包特指將函數(shù)作為值返回的情況,被返回的函數(shù)引用了生成它的母函數(shù)中的變量。 本人開始接觸編程是從js開始的,當時網(wǎng)上很多人說閉包是難點,各種地方對閉包的解釋也是千奇百怪。如今開始接觸js以外的各種編程語言,發(fā)現(xiàn)不光是js,php、...

    betacat 評論0 收藏0
  • 談談我所理解的閉包,js、php、golang里的closure

    摘要:當初看這個解釋有點懵逼,理解成閉包就是函數(shù)中的函數(shù)了。里的閉包最近不滿足于只干前端的活,開始用起了。里的閉包最近在學習語言,讓我們來看一下語言里的閉包。在中,閉包特指將函數(shù)作為值返回的情況,被返回的函數(shù)引用了生成它的母函數(shù)中的變量。 本人開始接觸編程是從js開始的,當時網(wǎng)上很多人說閉包是難點,各種地方對閉包的解釋也是千奇百怪。如今開始接觸js以外的各種編程語言,發(fā)現(xiàn)不光是js,php、...

    zhoutao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<