JavaScript作用域
函数内外定义默认都是全局变量
name = "Tom" ; function func() { age = "23" ; // 默认是全局变量 let sex = "man" ; // 定义局部变量 console.log(name) ; // Tom } func(); console.log(age) ; // 23 console.log(sex) ; // ReferenceError: sex is not defined
PHP作用域
函数内外定义默认都是局部变量
<?php $name = "Tom" ; function func() { $age = "23" ; // 默认是局部变量 $GLOBALS['sex'] = "man" ; // 定义全局变量 var_dump($name) ; // NULL 默认不能访问全局变量 global $name ; // 声明name为全局变量 var_dump($name) ; // string(3) "Tom" } func(); var_dump($age) ; // NULL var_dump($sex) ; // string(3) "man"
Python作用域
函数外是全局变量
函数内是局部变量
函数内可以访问函数外,函数外不能访问函数内
name = "Tom" def func() : age = "23" # 默认局部变量 global sex # 定义全局变量 sex = "man" print(name) # Tom func() # print(age) ; # NameError: name 'age' is not defined print(sex) # man
Java作用域
括号外是全局变量
括号内是局部变量
括号内可以访问括号外,括号外不能访问括号内
class Demo{ public static void main(String[] args) { String name = "Tom" ; { int age = 23 ; // 默认是局部变量 System.out.println(name) ; // Tom } // System.out.println(age) ; // 错误: 找不到符号 } }