サマリー:<?php $a1 = '3'; $b1 = '4';function add($a ,$b) { echo $a.'<hr>'; //函數(shù)變量??梢暂敵?輸出結(jié)果1 echo
<?php
$a1 = '3';
$b1 = '4';
function add($a ,$b) {
echo $a.'<hr>'; //函數(shù)變量??梢暂敵?輸出結(jié)果1
echo ($GLOBALS['a1']).'<hr>'; //全局變量,不可以在函數(shù),添加來$GLOBALS[]后??梢暂敵鯽1的值為3
echo $a1.'<hr>'; //全局變量,不可以在函數(shù),需要$GLOBALS[]調(diào)用全局變量到函數(shù)內(nèi)使用才可以輸出
echo $b.'<hr>'; //函數(shù)變量??梢暂敵?輸出結(jié)果2
echo $b1.'<hr>'; //全局變量,不可以在函數(shù)內(nèi)輸出,需要$global[]調(diào)用全局變量到函數(shù)內(nèi)使用才可以輸出
}
echo $a.'<hr>'; //因為是函數(shù)變量。因此不可輸出
echo $a1.'<hr>'; //全局變量??梢暂敵?,結(jié)果:3
echo $b.'<hr>'; //因為是函數(shù)變量。因此不可輸出
echo $b1.'<hr>'; //全局變量??梢暂敵?,結(jié)果:4
add('1','2');
// 輸出結(jié)果:
// 輸出順序先輸出函數(shù)外:
// 1:echo $a.'<hr>'; 報錯。
// 2:echo $a1.'<hr>'; 輸出結(jié)果:3。
// 3:echo $b.'<hr>'; 報錯。
// 4:echo $b1.'<hr>'; 輸出結(jié)果:4.
// 再輸出函數(shù)內(nèi):
// 1:echo $a.'<hr>'; 輸出結(jié)果:1
// 2:echo ($GLOBALS['a1']).'<hr>'; 輸出結(jié)果3。
// 3:echo $a1.'<hr>'; 報錯。
// 4:echo $b.'<hr>'; 輸出結(jié)果:2
// 5:echo $b1.'<hr>'; 報錯。
我能理解的就是這么多了。。塊級完全沒概念。感覺理論應(yīng)該適合函數(shù)作用域是一個道理的。應(yīng)該是會導(dǎo)致無法調(diào)用。解決辦法就是$GLOBALS[]來調(diào)用,也可以用傳參和 use來調(diào)用。不知道這樣理解對不對。
匿名函數(shù)我的理解是:就是把一個沒有名字的函數(shù)賦值給一個變量,通過變量來調(diào)用這個函數(shù)。同時因為這個函數(shù)封閉在這個變量里了。所以叫閉包。
添削の先生:西門大官人添削時間:2019-04-26 13:30:40
先生のまとめ:匿名函數(shù)就是沒有名字的函數(shù),可以把這個函數(shù)賦值給一個變量,也可以不賦值給一個變量 如有的回調(diào)函數(shù)。