php變量的作用域是什么

小編給大家分享一下php變量的作用域是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),江達(dá)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:江達(dá)等地區(qū)。江達(dá)做網(wǎng)站價(jià)格咨詢:028-86922220

作用域(scope),程序設(shè)計(jì)概念,通常來說,一段程序代碼中所用到的名字并不總是有效/可用的,而限定這個(gè)名字的可用性的代碼范圍就是這個(gè)名字的作用域。下面我們就為大家介紹一下php變量的作用域。

簡單來說有3種作用域:

局部作用域      全局作用域     超全局作用域

對(duì)應(yīng)有3種變量:局部變量   全局變量      超全局變量

局部作用域和局部變量

就是函數(shù)內(nèi)部的作用域范圍,其中的定義的變量就是局部變量(包括形參也是局部變量)。

局部變量只能在其函數(shù)內(nèi)部訪問。

局部變量在函數(shù)調(diào)用結(jié)束時(shí),會(huì)被自動(dòng)銷毀(可以理解為函數(shù)執(zhí)行結(jié)束,該執(zhí)行空間也被銷毀了)。

由此可見,函數(shù)外部不能訪問內(nèi)部的局部變量。

靜態(tài)變量:一個(gè)特殊的局部變量

含義:

在函數(shù)內(nèi)部,使用static關(guān)鍵字修飾的變量。

形式:

  function  XXX( .... ){
                            static  $s1 = 10;  //此時(shí),$s1就是靜態(tài)變量
                           ......
                      }

靜態(tài)變量的特點(diǎn):

靜態(tài)局部變量的值不會(huì)在函數(shù)調(diào)用結(jié)束時(shí)被銷毀,而是會(huì)一直保留。

對(duì)比:非靜態(tài)的局部變量在函數(shù)調(diào)用結(jié)束時(shí)就會(huì)被銷毀!

也就是說,當(dāng)再次調(diào)用函數(shù)時(shí),該變量(的值)還能繼續(xù)使用。

全局作用域與全局變量

就是函數(shù)外部范圍的作用域,其中定義的變量就是全局變量。

全局變量只能在其所在的全局作用域中可以直接使用(訪問)。

超全局作用域與超全局變量  

包括局部作用域和全局作用域的整個(gè)作用域范圍。

超全局變量可以在所有范圍中使用(訪問)。

實(shí)際上,只有有限的10來個(gè)系統(tǒng)預(yù)定義變量是超全局變量,包括:$_GET, $_POST, $_REQUEST等。

所以,系統(tǒng)預(yù)定義變量,也被統(tǒng)稱為超全局變量。

一個(gè)特別的超全局變量:$GLOBALS

它也是一個(gè)數(shù)組,其中存儲(chǔ)了我們自己定義的所有全局變量。

每個(gè)全局變量的變量名,就是$GLOBALS數(shù)組的一個(gè)單元。

比如:

在全局作用域中定義如下變量:

$v1 = 1;   //這一行執(zhí)行,就有了一個(gè)這個(gè):$GLOBALS[‘v1’], 其值為1
$v2 = ‘a(chǎn)bc’;  //這一行執(zhí)行,就有了一個(gè)這個(gè):$GLOBALS[‘v2’], 其值為’abc’
$v3 = true;  //這一行執(zhí)行,就有了一個(gè)這個(gè):$GLOBALS[‘v3’], 其值為true

作用:

可以讓我們?cè)诰植孔饔糜蚍秶?,使用全局變量?/p>

演示如下:

 $v1 = 10;  //全局變量
               function  func1(  ){
                          echo  $GLOBALS[‘v1’]; //輸出10;
                          echo  $v1;    //報(bào)錯(cuò):變量v1未定義
                          $s1 = $GLOBALS[‘v1’] * 5; //結(jié)果為50;
                         $s2 = $v1 * 5;    //報(bào)錯(cuò):變量v1未定義
              }

一個(gè)特別的的關(guān)鍵字:global

作用:

用于在局部作用域中,修飾一個(gè)跟全局變量同名的局部變量。

此時(shí)該局部變量也可以使用全局變量的值了——實(shí)際上他們其實(shí)是類似變量引用關(guān)系。

其作用類似:$GLOBALS

   $a = 10;
      function sum(){
          global $a ;  //全局變量的引用的別名
          $a++;
          $b = $a + 1;
          echo $b;
      } 
      sum(); //  12
      echo $a ; //  11

看完了這篇文章,相信你對(duì)php變量的作用域是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前文章:php變量的作用域是什么
新聞來源:http://muchs.cn/article28/ihjsjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、品牌網(wǎng)站制作App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司網(wǎng)站收錄、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司