PHP 巢狀函數與匿名函數作用域問題
phpcn_u1582
phpcn_u1582 2017-05-18 10:45:34
0
1
543
function a()
{
    $demi = '局部变量';
    b($demi);
}
function b($args)
{
    echo $args;
}
a();

PHP中的所有函數和類別都具有全域作用域,可以定義在一個函數之內而在之外調用,反之亦然。

為什麼函數b能夠透過傳參方式取得函數a的局部變數?

function tesxt()
{
    $var = 10;
    $echonumber = function($num) {
         echo $num;
    };
    $echonumber($var);
}
tesxt();

相同,匿名函數為什麼也是透過傳參方式來取得外部函數的變數?

phpcn_u1582
phpcn_u1582

全部回覆(1)
小葫芦

其實是這樣的。當你呼叫函數的時候,你傳的參數其實是一個副本,值複製,相當於另外一個變量,沒有任何關係。
同理匿名函數也是一樣的。但是你如果想要在匿名函數中使用外部變量,是無法存取的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!