亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP的變量類型和作用域詳解

 更新時(shí)間:2014年03月12日 16:30:38   作者:  
什么是變量的作用域?變量的作用域是指在腳本的一次生命周期內(nèi)變量的有效范圍。一般來(lái)說(shuō)有全局和局部之分

PHP中變量的作用域可以分為:超全局(全局變量的特殊類型,在局部范圍里可直接使用),全局,局部,靜態(tài)(是局部變量的特殊類型)
在PHP中,全局變量實(shí)際上是靜態(tài)全局變量,如果不用unset顯式的釋放,那么等腳本運(yùn)行結(jié)束全局變量才會(huì)被釋放掉
局部靜態(tài)變量細(xì)分可以是 局部靜態(tài)函數(shù)變量(函數(shù)中聲明的static變量),局部靜態(tài)成員變量(類中聲明的 static 屬性,被所有類實(shí)例共享)
局部靜態(tài)變量只有腳本運(yùn)行結(jié)束才會(huì)被自動(dòng)釋放

超全局變量:在一個(gè)腳本的任何作用域里都可以被訪問(wèn),這些都是PHP內(nèi)置的

復(fù)制代碼 代碼如下:

$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_SESSION(持久化存儲(chǔ))
$_COOKIE(持久化存儲(chǔ))
$_REQUEST
$_ENV

全局變量:聲明的變量不在class,function,if等語(yǔ)言結(jié)構(gòu)內(nèi)部,如果要在class,function,if等語(yǔ)言內(nèi)部使用,需要用關(guān)鍵詞global或者超全局變量$GLOBALS

靜態(tài)變量: 在function中使用關(guān)鍵詞static聲明的變量,靜態(tài)變量的值保留直至腳本結(jié)束
局部變量:在class,function,if/while/for等結(jié)構(gòu)語(yǔ)句內(nèi)部聲明的變量

1.global關(guān)鍵詞和$GLOBALS實(shí)例

復(fù)制代碼 代碼如下:
<?php
$a = 0;
function foo()
{
    global $a;
    echo $a;
}
function foo2()
{
    echo $GLOBALS['a'];
}

2.static 變量和普通局部變量區(qū)別實(shí)例
復(fù)制代碼 代碼如下:
<?php
function foo1()
{
    $var = 0;
    $var++;
    return $var;
}
echo foo1();
echo foo1();
//輸出都是1
function foo ()
{
    static $var = 0;
    $var++;
    return var;
}
echo foo();
echo foo();

//第一次輸出1 第二次2
3.static 關(guān)鍵詞還可以聲明靜態(tài)屬性和靜態(tài)方法
靜態(tài)屬性只能被類調(diào)用,而不能被類實(shí)例調(diào)用
靜態(tài)方法里不能使用$this,只能用self訪問(wèn)類的靜態(tài)屬性

另外理解static變量的一段代碼:

復(fù)制代碼 代碼如下:

<?php
class t
{
        static $v = 10;
        public function a()
        {
                static $var = 10;
                $var++;
                echo $var . "<br>\n";
        }
        public static function aa()
        {
                self::$v++;
                echo self::$v . "<br>\n";
        }
}
$o1 = new t();
$o1->a();//輸出11
$o2 = new t();
$o2->a();//輸出12
t::aa();//輸出11
$o1->aa();//輸出12
$o2->aa();//輸出13

從上面的代碼中,可知如果一個(gè)類成員方法中有靜態(tài)變量,即使是不同的類實(shí)例,他們也會(huì)共享這個(gè)靜態(tài)變量,盡管這個(gè)靜態(tài)變量不是類靜態(tài)成員變量,這點(diǎn)容易讓人迷惑。

相關(guān)文章

  • PHP模版引擎原理、定義與用法實(shí)例

    PHP模版引擎原理、定義與用法實(shí)例

    這篇文章主要介紹了PHP模版引擎原理、定義與用法,結(jié)合實(shí)例形式分析了php模板引擎相關(guān)的模板編譯、緩存處理、變量替換等操作技巧,需要的朋友可以參考下
    2019-03-03
  • PHP使用curl函數(shù)發(fā)送Post請(qǐng)求的注意事項(xiàng)

    PHP使用curl函數(shù)發(fā)送Post請(qǐng)求的注意事項(xiàng)

    這篇文章主要給大家介紹的是PHP使用curl函數(shù)發(fā)送Post請(qǐng)求的一些注意事項(xiàng),文中通過(guò)示例代碼與解釋介紹的很詳細(xì),對(duì)大家學(xué)習(xí)或則使用PHP具有一定的參考借鑒價(jià)值,有需要的朋友們可以跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • 在數(shù)據(jù)量大(超過(guò)10萬(wàn))的情況下

    在數(shù)據(jù)量大(超過(guò)10萬(wàn))的情況下

    在數(shù)據(jù)量大(超過(guò)10萬(wàn))的情況下...
    2007-01-01
  • php筆記之常用文件操作

    php筆記之常用文件操作

    php文件操作是phper必須掌握的 雖然用到的機(jī)會(huì)比較少,現(xiàn)在整理一下學(xué)習(xí)的筆記代碼有詳細(xì)的注釋 看起來(lái)應(yīng)該沒問(wèn)題的。
    2010-10-10
  • 深入PHP nl2br()格式化輸出的詳解

    深入PHP nl2br()格式化輸出的詳解

    本篇文章是對(duì)PHP nl2br()格式化輸出進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php文件上傳類完整實(shí)例

    php文件上傳類完整實(shí)例

    這篇文章主要介紹了php文件上傳類,結(jié)合完整實(shí)例形式分析了php上傳文件的類型判斷、大小計(jì)算機(jī)限制等技巧,需要的朋友可以參考下
    2016-05-05
  • 火車頭discuz6.1 完美采集的php接口文件

    火車頭discuz6.1 完美采集的php接口文件

    火車頭官方提供的discuz6.1的php接口比較粗糙,基本不能滿足需要,本人在采集的工作中使用的采集接口文件如下
    2009-09-09
  • PHP 定界符 使用技巧

    PHP 定界符 使用技巧

    因?yàn)镻HP是一個(gè)Web編程語(yǔ)言,在編程過(guò)程中難免會(huì)遇到用echo來(lái)輸出大段的html和javascript腳本的情況
    2009-06-06
  • php文件上傳原理與實(shí)現(xiàn)方法詳解

    php文件上傳原理與實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了php文件上傳原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了PHP文件上傳的配置、前后臺(tái)處理、錯(cuò)誤處理等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • PHP引用符&的用法詳細(xì)解析

    PHP引用符&的用法詳細(xì)解析

    以下是對(duì)PHP中引用符&的用法進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過(guò)來(lái)參考下
    2013-08-08

最新評(píng)論