首页 / 网页编程 / PHP / php变量作用域:花括号、global和闭包
php变量作用域:花括号、global和闭包2014-10-18变量的作用域是变量的一个作用范围,在这个范围内变量为可见的,即可以访问该变量的代码区域, 相反,如果不在这个范围内,变量是不可见的,无法被调用。 (全局变量可以将作用范围看作为整个程序)花括号很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域。01 <?php02 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 <?php2 function test() {3 $test = "var test";4 }5 6 test();7 var_dump($test);8 ?>结果是:1 NULLglobal关键字PHP的执行是以一个.php脚本为单位,在一个.php脚本的执行过程中,可以include和require其他PHP脚本进来执行。执行的.php脚本与include/require进来的脚本共享一个全局域(global scope)。global关键字无论在哪层,所引用的都是全局域的变量。01 <?php02 $test = "global test";03 function a() {04 $test = "test in a()";05 function b() {06 global $test;07 var_dump($test);08 }09 b();10 }11 12 a();13 ?>执行结果是:1 string(11) "global test"URL:http://www.bianceng.cn/webkf/PHP/201410/45954.htm