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();
相同,匿名函數為什麼也是透過傳參方式來取得外部函數的變數?
其實是這樣的。當你呼叫函數的時候,你傳的參數其實是一個副本,值複製,相當於另外一個變量,沒有任何關係。
同理匿名函數也是一樣的。但是你如果想要在匿名函數中使用外部變量,是無法存取的。