站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        php變量的作用域

        php變量的作用域

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

        推薦教程:php入門視頻教程

        簡(jiǎn)單來(lái)說(shuō)有3種作用域:

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

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

        局部作用域和局部變量

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

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

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

          由此可見(jiàn),函數(shù)外部不能訪問(wèn)內(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ì)被銷毀!

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

        全局作用域與全局變量

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

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

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

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

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

          實(shí)際上,只有有限的10來(lái)個(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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚洲av无码精品网站| 无码人妻精品一区二区三区66 | 久久精品国产99久久无毒不卡| 人人妻人人澡人人爽精品欧美| 国产精品久久久久久福利69堂| 在线观看91精品国产网站| 国产精品视频九九九| 国产精品视频久久久| 久久久精品人妻一区二区三区蜜桃 | 国产成人无码精品久久久免费| 国产精品久久久久aaaa| 亚洲av无码国产精品色午夜字幕 | 国产精品青草久久久久福利99| 国产国产精品人在线视| 亚洲精品亚洲人成人网| 欧美日韩精品在线观看| 精品国产第1页| 97久久精品无码一区二区| 91po国产在线精品免费观看| 精品一区二区三区在线成人| 精品日本一区二区三区在线观看 | 无码精品国产VA在线观看DVD| 国产天天综合永久精品日| 九九热精品在线| 99国产精品一区二区| 国产精品亚洲片在线观看不卡| 亚洲精品一品区二品区三品区| 日本精品自产拍在线观看中文 | 久久99久久99精品免视看动漫| 亚洲国产精品成人AV无码久久综合影院| 国产精品高清在线观看| 精品一区二区三区中文字幕| 国产精品一区二区不卡| 国内精品伊人久久久久| 国产香蕉精品视频在| 久久这里只精品国产99热| 久久91精品久久91综合| 国产精品国产精品国产专区不卡| 91国内外精品自在线播放| 国产精品99久久久久久人| 国产精品夜色一区二区三区|