加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php变量作用域:花括号、global和闭包 - PHP教程

发布时间:2014-12-04 23:34:16 所属栏目: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

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读