程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php變量作用域:花括號、global和閉包

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved