多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP Global變量定義一些用法詳解

PHP Global變量定義一些用法詳解

來源:程序員人生   發布時間:2013-11-20 19:43:13 閱讀次數:2965次

php對global變量的解析是:Global的作用是定義全局變量,但是這個全局變量不是應用于整個網站,而是應用于當前頁面,包括include或require的所有文件。

例代碼如下:

  1. <?php  
  2. $a = 1;  
  3. $b = 2;  
  4. function Sum()  
  5. {  
  6. global $a$b//在里面聲明為全局變量  
  7. $b = $a + $b;  
  8. }  
  9. Sum();  
  10. echo $b;  
  11. ?> 
  12. 結果: 3  

如果沒有全局變量global在方法內是不能獲得$a,$b值的,所以在方法里面想用外面的變量就需要先聲明這個變量為全局變量,這樣就可以使用了.

總結:在函數體內定義的PHP Global變量,函數體外可以使用,在函數體外定義的global變量不能在函數體內使用,$glpbal $a; $a=123; function f() { echo $a; //錯誤, }

再看看下面一例,代碼如下:

  1. function f()  
  2. {  
  3. global $a;  
  4. $a=123;  
  5. }  
  6. f();  
  7. echo $a//正確,可以使用 

在用戶自定義函數中,一個局部函數范圍將被引入,任何用于函數內部的變量按缺省情況將被限制在局部函數范圍內(包括include 和 require 導入的文件內的變量)!

解釋:A.php文件的內Test_Global是定義好的第三方函數,該函數用include導入了B.php文件內的$a的global全局變量,所以$a被限制在Test_Global局部函數范圍內,所以B.php文件內的$a的作用范圍都在Test_Global內,而不是作用了整個A.php內….

解決方案:

1.沖出局部函數A.php 文件,代碼如下:

  1. <?php 
  2. function Test_Global() 
  3. {   
  4.     Test();   
  5. }   
  6. include 'B.php';   //將include 從局部Test_Global函數中移出 
  7. $a = 0 ; 
  8. Test_Global(); 
  9. echo $a
  10. ?> 

B.php 文件

  1. <?php 
  2. function Test() 
  3.     global $a
  4.     $a =1; 
  5. ?> 

2.優秀的訪問器,A.php 文件,代碼如下:

  1. <?php 
  2. include 'B.php';  
  3. $a =0; 
  4. Set_Global($a); 
  5. echo $a
  6. ?>  

B.php 文件

  1. <?php 
  2. function Set_Global(&$var
  3.     $var=1; 
  4. ?> 

再來看看$GLOBALS[],代碼如下:

  1. $var1 = 1;   
  2. $var2 = 2;   
  3. function test1(){   
  4.      $GLOBALS['var2'] = &$GLOBALS['var1'];   
  5. }   
  6. test1();   
  7. echo $var2;  //1 
  8. $var3 = 1;   
  9. $var4 = 2;   
  10. function test2(){   
  11.      global $var3,$var4;   
  12.      $var4 = &$var3;   
  13. }   
  14. test2();   
  15. echo $var4

2.為什么$var2的打印結果是1,而$var4的打印結果為2呢?其實就是因為$var3的引用指向了$var4的引用地址。$var4的實際值并沒有改變。官方的解釋是:$GLOBALS['var']是外部的全局變量本身,global $var是外部$var的同名引用或者指針。

也許這個例子還不是很清晰,我再引入一個例子,代碼如下:

  1. $var1 = 1;   
  2. function test1(){   
  3.      unset($GLOBALS['var1']);   
  4. }   
  5. test1();   
  6. var_dump($var1);   //NULL 
  7. $var2 = 1;   
  8. function test2(){   
  9.     global  $var2;   
  10.      unset($var2);   
  11. }   
  12. test2();  
  13. echo $var2;  

1 $var1的值被刪除,而$var2的值還存在,這就證明,$var2只是別名引用,本身的值沒有受到任何的改變,也就是說global $var其實就是$var = &$GLOBALS['var'],調用外部變量的一個別名而已!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲福利国产 | 一区二区三区四区无限乱码 | 国产免费福利网站 | 欧美午夜三级我不卡在线观看 | 播放四川美女一级毛片半小时 | 日韩欧美伊人久久大香线蕉 | 亚洲专区中文字幕 | 一级在线观看视频 | 情侣偷偷看的羞羞视频网站 | 国产精品无码专区在线观看 | 国产精品18久久久久网站 | 亚洲欧美国产另类 | 最近最新免费中文字幕高清 | 成人午夜视频一区二区国语 | 国产欧美一区二区三区视频在线观看 | 一级做片爱性视频免费 | 91精品在线免费观看 | 欧美性大战久久久久久久蜜桃 | 一本一道久久综合狠狠老 | 拍拍拍免费高清在线观看视频 | 精品国产一区二区三区在线 | 国产精品久久久久毛片 | 欧美一级毛片欧美一级 | 香蕉狠狠再啪线视频 | 亚洲精品美女久久久aaa | 国产成人精品免费视频大全五级 | 福利免费看 | 国产成人午夜91精品麻豆剧场 | 视频一区二区免费 | 美国一级毛片片aa成人 | 五月天在线观看免费视频播放 | 欧美成人综合视频 | 最新国产福利在线观看 | 亚洲最黄网站 | 亚洲精品视频观看 | 欧美日韩亚洲国内综合网俺 | 亚洲图片校园春色 | 亚洲黄色在线观看视频 | 欧美成人午夜片一一在线观看 | 国产免费一区二区三区在线观看 | 亚洲91|