在PHP中,使用關(guān)鍵字 static 修飾成員屬性和成員方法被稱為靜態(tài)屬性和靜態(tài)方法。靜態(tài)屬性和靜態(tài)方法不需要在類被實(shí)例化的情況下可以直接使用。
靜態(tài)屬性
與普通的成員屬性不同,靜態(tài)屬性屬于類本身而不屬于類的任何實(shí)例。靜態(tài)屬性可以被看做是存儲(chǔ)在類當(dāng)中的全局變量,可以在任何地方通過(guò)類來(lái)訪問(wèn)它們。
由于靜態(tài)屬性不受任何具體對(duì)象的限制,所以不需要建立類實(shí)例,而可以直接引用類中的靜態(tài)屬性,使用語(yǔ)法格式如下:
類名稱::$靜態(tài)屬性名稱
其中,符號(hào)”::”被稱作范圍解析操作符,它可以用于訪問(wèn)靜態(tài)成員、靜態(tài)方法和常量,還可以用于覆蓋類中的成員和方法。
如果想在同一類的成員方法中訪問(wèn)靜態(tài)屬性,可以通過(guò)在該靜態(tài)屬性的名稱前加上操作符”self::”來(lái)實(shí)現(xiàn)。例子如下:
- classDaBing{
- static$bing=0; //定義靜態(tài)屬性 bing
- functionaddOne(){
- self::$bing++; //調(diào)用同一類中的靜態(tài)屬性 bing
- echo"/$bing的值為:".self::$bing++;
- }
- }
- $obj=newDaBing();
- $obj->addOne();
該程序使靜態(tài)屬性的值加1,執(zhí)行結(jié)果為:1
靜態(tài)方法
在PHP中將成員方法聲明為靜態(tài),就稱其為靜態(tài)方法。由于靜態(tài)方法不受任何具體對(duì)象的限制,所以不需要建立類實(shí)例就可以直接引用類中的方法。語(yǔ)法格式如下:
類名稱::靜態(tài)方法名稱([參數(shù)1,參數(shù)2,……])
與調(diào)用靜態(tài)屬性相同,在類中使用操作符”self::”來(lái)表示調(diào)用同一類中的靜態(tài)方法,例子如下:
- classDaBing{
- staticfunctionaddOne($number){//定義靜態(tài)方法 addOne()
- echo"/$number+1=";
- echo$number+1;
- }
- staticfunctionshowResult($number){
- echo"/$number=".$number;
- echo"
- ";
- self::addOne($number);//調(diào)用同一類中的靜態(tài)方法 addOne()
- }
- }
- $number=100;
- DaBing::showResult($number);
該程序執(zhí)行的結(jié)果為:
$number=100 $number+1=101
新聞熱點(diǎn)
疑難解答