PHP中若使用static關鍵字來修飾屬性、方法,稱這些屬性、方法為靜態屬性、靜態方法。static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的實例相關,因此,這類屬性或方法也稱為“類屬性”或“類方法”。
程序中為什么要使用靜態方法和屬性呢?它們有幾個特性是比較有用的:不需要實例化類就可以訪問靜態方法和屬性,在代碼的任何地方都可以使用!
?php
class Example{
static public $num = 0;
static public function staticFunc(){
self::$num++;
print self::$num;
}
}
echo Example::$num;
echo Example::staticFunc();
?>
需要注意的是:
1.靜態方法不能訪問普通屬性,只能訪問靜態屬性
2.靜態方法是以類為作用域的,所以不用實例化就可以使用::來連接靜態屬性和靜態方法
3.靜態方法中不能使用偽關鍵詞
那么常量屬性和靜態屬性有什么區別呢?
?php
class Example{
const NUM = 0;
//...
}
?>
常量屬性不以$開頭 而是以大寫字母命名,他與靜態屬性的區別是它不可以被重新復制,否則會解析錯誤。
常量屬性
有些屬性是不能改變的
在PHP 5可以在類中定義常量屬性,和全局變量一樣,類常量一旦設置后就不能改變。常量屬性用const關鍵字來聲明。常量不像常規屬性那樣以 $ 開頭。按照慣例,只能用大寫字母來命名常量,如下所示:
class shopProduct {
constAVAILABLE = 0;
//…
}
常量屬性只包含基本數據類型的值。不能將一個對象指派給常量。像靜態屬性一樣,只能通過類而不能通過類的實例訪問常量屬性。引用常量時不需要用 $ 作為前導符,如下所示:
echoshopProduct::AVAILABLE;
給已經聲明過的常量賦值會引起解析錯誤。
當需要在類的所有實例中都能訪問某個屬性,并且屬性值無需改變時,應該使用常量。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:- 詳談php靜態方法及普通方法的區別
- php面向對象中static靜態屬性和靜態方法的調用
- 淺析php靜態方法與非靜態方法的用法區別
- php中類和對象:靜態屬性、靜態方法
- PHP使用靜態方法的幾個注意事項
- 淺談PHP中靜態方法和非靜態方法的相互調用
- PHP靜態調用非靜態方法的應用分析
- php 靜態屬性和靜態方法區別詳解
- PHP實現偽靜態方法匯總
- php之static靜態屬性與靜態方法實例分析
- PHP的靜態方法與普通方法用法實例分析