变量的作用域是变量的一个作用范围,在这个范围内变量为可见的,即可以访问该变量的代码区域, 相反,如果不在这个范围内,变量是不可见的,无法被调用。 (全局变量可以将作用范围看作为整个程序)
花括号
很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域。
01 | <?php |
02 | if(True) { |
03 | $a= 'var a'; |
04 | } |
05 |
06 | var_dump($a); |
07 |
08 | for($i= 0; $i< 1; $i++) { |
09 | $b= 'var b'; |
10 | for($i= 0; $i< 1; $i++) { |
11 | $c= 'var c'; |
12 | } |
13 | var_dump($c); |
14 | } |
15 |
16 | var_dump($b); |
17 | var_dump($c); |
18 | ?> |
运行结果是:
1 | string(5) "var a"string(5) "var c"string(5) "var b"string(5) "var c" |
可见if和for的花括号并无构成新的作用域。
而函数:
1 | <?php |
2 | functiontest() { |
3 | $test= 'var test'; |
4 | } |
5 |
6 | test(); |
7 | var_dump($test); |
8 | ?> |
结果是:
1 | NULL |
转载于:https://blog.51cto.com/nicegy/1347035