php变量作用域:花括号、global和闭包 - PHP教程
变量的作用域是变量的一个作用范围,在这个范围内变量为可见的,即可以访问该变量的代码区域, 相反,如果不在这个范围内,变量是不可见的,无法被调用。 (全局变量可以将作用范围看作为整个程序)
花括号 很多语言都以花括号作为作用域界限,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 function test() { 3 $test = 'var test'; 4 } 5 6 test(); 7 var_dump($test); 8 ?> 结果是: 1 NULL global关键字 PHP的执行是以一个.php脚本为单位,在一个.php脚本的执行过程中,可以include和require其他PHP脚本进来执行。 执行的.php脚本与include/require进来的脚本共享一个全局域(global scope)。 global关键字无论在哪层,所引用的都是全局域的变量。 01 <?php 02 $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
(编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |