溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

靜態變量(static)

發布時間:2020-07-20 03:38:39 來源:網絡 閱讀:452 作者:yuxin1234567890 欄目:網絡安全

一、靜態變量

<?php

/**

聲明一個名為test的函數,測試在函數內部聲明的靜態變量的使用

*/

function test(){

static $a=0;

echo $a;

$a++;

}

test();           //第一次運行,輸出0

test();           //第二次運行,輸出1

test();           //第三次運行,輸出2

test();           //第四次運行,輸出3

?>


  在上例中,將函數中的局部變量$a,使用static關鍵詞聲明為靜態變量,并賦初值為0.函數在第一次執行時,靜態變量$a經運算后,從初值0變為1.當函數第一次執行完畢后,靜態變量$a并沒有被釋放,而是將結果保存在靜態內存中。第二次執行時,$a從內存中獲取上一次計算的結果1,繼續計算,并將結果2存于靜態內存空間中。以后每次函數執行時,靜態變量將從自己的靜態內存空間中獲取前次的儲存結果,并以此為初值進行計算。


二、static關鍵字的使用

    類中的靜態成員是不需要對象而是使用類名來直接訪問的,格式如下所示:

類名::靜態成員屬性名;      //在類的外部和成員方法中都可以使用這種方式訪問靜態成員屬                              性

類名::靜態成員方法();      //在類的外部和成員方法中都可以使用這種方式訪問靜態成員方                              法


    在類中聲明的成員方法中,也可以使用關鍵字“self”來訪問其他靜態成員。因為靜態成員是屬于類的,而不屬于任何對象,所以不能用$this來引用它,而在PHP中給我們提供的self關鍵字,就是在類的成員方法中用來代表本類的關鍵字。格式如下所示:

self::靜態成員屬性名;       //在類的成員方法中使用這種方式訪問本類中的靜態成員屬性

self::靜態成員方法名();      //在類的成員方法中使用這種方式訪問本類中的靜態成員方法

<?php

class MyClass{

static $count;         //在類中聲明一個靜態成員屬性count,用于統計對象被創建的次數


function __construct(){     //每次創建一個對象就會自動調用一次這個構造方法

self::$count++;         //使用self訪問靜態成員count,使其自增1

}


static function getCount(){    //聲明一個靜態方法,在類外面直接使用類名就可以調用

return self::$count;       //在方法中使用self訪問靜態成員并返回

}

}

MyClass::$count=0;               //在類外面使用類名訪問類中的靜態成員,為其初始化賦值0


$myc1=new MyClass();             //通過myclass類創建第一個對象,在構造方法中將count累加1

$myc2=new MyClass();             //通過myclass類創建第二個對象,在構造方法中又將count累加1

$myc3=new MyClass();            //通過myclass類創建第三個對象,在構造方法中再次將count累加1


echo MyClass::getCount();       //在類外面使用類名訪問類中的靜態成員方法,獲取靜態屬性的值3

echo "<br/>";

echo $myc3->getCount();        //通過對象也可以訪問類中的靜態成員方法,獲取靜態屬性的值3

?>

代碼運行結果為3 3

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女