面向對象的靜態屬性和靜態方法
阿新 • • 發佈:2018-06-08
ima alt 方法名 如果 func In public fun 調用
一,靜態屬性
靜態屬性時該類的所有對象共享的變量,任何一個該類的對象去訪問它時,取到的都是相同的值,同樣任何一個該類的對象去修改它時,修改的也是同一個變量
定義靜態屬性:訪問修飾符 static 靜態屬性名
靜態屬性的訪問:
1.在類的內部
self::靜態屬性名
類名::靜態屬性名
2.類的外部
如果要在類的外部訪問靜態屬性,靜態屬性需要時public,否則不能直接訪問
訪問形式是: 類名::靜態屬性名
$this和self的區別
1.使用的方式不同
$this->
self::
2.self是類範疇(指向類),$this是對象實例(指向對象實例)
靜態屬性的使用註意事項
1.如果在類的內部使用靜態屬性,有兩種形式:self::靜態屬性名 類名::靜態屬性名
2.在類的外部訪問靜態屬性 類名::靜態屬性名 要求靜態屬性是public
3.靜態屬性在定義時,可以直接初始化(賦值)
二.靜態方法
靜態方法是專門用來操作靜態屬性的
寫法:訪問修飾符 static function 函數名(形參){}
1,在類外部調用靜態方法有以下幾種形式
類名::靜態方法名
對象名->靜態方法名
對象名::靜態方法名(不推薦使用)
2.在類的內部調用靜態方法
self::方法名
類名::方法名(不推薦使用,因為當你的類名發生改變時,這裏也要發生修改)
$this->方法名(不推薦使用)
3.靜態方法只能訪問靜態屬性
4.普通的成員方法可以訪問靜態屬性
5.如果靜態方法時protected或private則不能在類外部使用
面向對象的靜態屬性和靜態方法