var value = 1 function foo(){ console.log(value) // 1 } function bar(){ var value = 2 foo() } bar() 靜態做用域 執行foo()函數,先從foo函數內部查找是否有value變量,若是沒有則去上一層做用域去尋找,也就是value=1,因此結果打印1
value=1 function foo () { echo $value; } function bar () { local value=2; // 2 foo; } bar 動態做用域 執行foo()函數,先從foo函數內部尋找是否有value變量,若是沒有,則去調用函數的做用域去尋找,也就是bar函數內部尋找value變量,結果打印2