日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > PHP中全局變量global詳解

PHP中全局變量global詳解

來源:程序員人生   發(fā)布時間:2014-05-13 17:33:28 閱讀次數(shù):4015次

本文章來詳細的介紹關于PHP中全局變量global的方法,有需要了解global函數(shù)使用方法的朋友可參考本文章.

變量的范圍即它定義的上下文背景(也就是它的生效范圍).大部分的 PHP 變量只有一個單獨的范圍.這個單獨的范圍跨度同樣包含了 include 和 require 引入的文件.

實例代碼如下:

  1. <?php 
  2. $a = 1; 
  3. include 'b.inc'
  4. ?> 

這里變量 $a 將會在包含文件 b.inc 中生效.但是,在用戶自定義函數(shù)中,一個局部函數(shù)范圍將被引入.任何用于函數(shù)內(nèi)部的變量按缺省情況將被限制在局部函數(shù)范圍內(nèi).例如:

實例代碼如下:

  1. <?php 
  2. $a = 1; /* global scope */ 
  3. function Test() 
  4.     echo $a/* reference to local scope variable */ 
  5. Test(); 
  6. ?> 

這個腳本不會有任何輸出,因為 echo 語句引用了一個局部版本的變量 $a,而且在這個范圍內(nèi),它并沒有被賦值.你可能注意到 PHP 的全局變量和 C 語言有一點點不同,在 C 語言中,全局變量在函數(shù)中自動生效,除非被局部變量覆蓋.這可能引起一些問題,有些人可能不小心就改變了一個全局變量.PHP 中全局變量在函數(shù)中使用時必須申明為global.

今天就遇到了php 全局變量不起作用的問題.先上一段簡單的代碼:

實例代碼如下:

  1. <?php 
  2. $a = 0 ; 
  3. function Test() 
  4.     $a =1; 
  5. Test(); 
  6. echo $a
  7. ?> 

上面的代碼中輸出是0,那是因為函數(shù)體Test內(nèi)$a變量被缺省設置為局部變量,$a的作用域就是在Test內(nèi).修改代碼如下

實例代碼如下:

  1. <?php 
  2. $a = 0 ; 
  3. function Test() 
  4. &nbsp;   global $a;//申明函數(shù)體Test內(nèi)使用的$a變量為global全局變量 
  5. &nbsp;   $a =1; 
  6. Test(); 
  7. echo $a
  8. ?> 

申明函數(shù)體Test內(nèi)使用的$a變量為global全局變量后,使得$a的作用全局,所以輸出為1.

上面的實例只是基本的global全局變量知識,下面我們看看復雜點的:

//A.php 文件

實例代碼如下:

  1. <?php 
  2. function Test_Global() 
  3. {&nbsp;&nbsp; 
  4.     include 'B.php';&nbsp;&nbsp; 
  5.     Test();&nbsp;&nbsp; 
  6. }&nbsp;&nbsp; 
  7. $a = 0 ; 
  8. Test_Global(); 
  9. echo $a
  10. ?>&nbsp; 
  11. //B.php 文件 
  12. <?php 
  13. function Test() 
  14. &nbsp;   global $a;//申明函數(shù)體Sum內(nèi)使用的$a變量為global全局變量 
  15. &nbsp;   $a =1; 
  16. ?> 

為什么輸出的卻是0?!!

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

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

解決方案:

1. 沖出局部函數(shù)

實例代碼如下:

  1. //A.php 文件 
  2. <?php 
  3. function Test_Global() 
  4. {&nbsp;&nbsp; 
  5.     Test();&nbsp;&nbsp; 
  6. }&nbsp;&nbsp; 
  7. include 'B.php';&nbsp;&nbsp; //將include 從局部Test_Global函數(shù)中移出 
  8. $a = 0 ; 
  9. Test_Global(); 
  10. echo $a
  11. ?>&nbsp; 
  12. //B.php 文件 
  13. <?php 
  14. function Test() 
  15.     global $a
  16.     $a =1; 
  17. ?> 

2.優(yōu)秀的訪問器

實例代碼如下:

  1. //A.php 文件 
  2. <?php 
  3. include 'B.php';&nbsp; 
  4. $a =0; 
  5. Set_Global($a); 
  6. echo $a
  7. ?>&nbsp; 
  8. //B.php 文件 
  9. <?php 
  10. function Set_Global(&$var
  11.     $var=1; 
  12. ?> 
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 免费污污网站 | 欧美日韩在线综合 | 国产不卡av在线 | 午夜激情免费 | 国产欧美一区二区精品久导航 | 久久蜜桃 | 99精品在线看 | 国产精品视频一区二区三区不卡 | 欧美日产国产成人免费图片 | 一个色av | 免费视频一区二区 | 亚洲一区二区三区日韩 | 叶山小百合av一区二区 | 日本动漫做毛片一区二区 | 粉嫩久久99精品久久久久久夜 | 亚洲欧美一区二区三区 | 欧美日韩在线一区 | 久久久久久久久久久一区二区 | 狠狠操狠狠干 | 色婷婷一区二区三区四区成人网 | 亚洲高清在线 | 国产精品久久久一区麻豆最新章节 | 亚洲精品乱码久久久久膏 | 国产一区二区三区在线 | 亚洲高清在线免费观看 | 九色最新网址 | 久久久不卡| 久久都是精品 | 麻豆视频在线观看免费网站黄 | 国户精品久久久久久久久久久不卡 | uu天堂| 在线a级毛片 | 亚洲日韩视频 | 91久久久久久久一区二区 | 国产一区二区成人在线 | 色欧美综合 | 久久99精品久久久久久久青青日本 | 美女视频一区二区 | 久久久久久一 | 免费国产网站 | 久久国产精品精品国产色婷婷 |