色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

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)容易讓人迷惑。

php技術(shù)PHP的變量類型和作用域詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 彭阳县| 宜都市| 隆昌县| 梨树县| 叶城县| 云林县| 嘉定区| 宣汉县| 安岳县| 峨眉山市| 阿勒泰市| 廊坊市| 永城市| 灵山县| 工布江达县| 简阳市| 德兴市| 遵化市| 浦县| 康平县| 泗洪县| 三穗县| 绥滨县| 天峻县| 杭锦后旗| 万源市| 革吉县| 安康市| 拜泉县| 宣化县| 天津市| 泰宁县| 辽中县| 柏乡县| 汽车| 崇州市| 万年县| 阳泉市| 黎川县| 海城市| 蕲春县|