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) ; // 错误: 找不到符号
}
}

总结

语言

默认作用域

访问情况

JavaScript

全局变量

任何地方

PHP

局部变量

内外不互通

Python

局部变量

内可以访问外,外不能访问内

Java

局部变量

内可以访问外,外不能访问内