PHP 類和物件 Static靜態關鍵字

2021-10-06 11:28:55 字數 797 閱讀 5997

宣告類屬性或方法為靜態,就可以不例項化類而直接訪問。

靜態屬性不能通過乙個類已例項化的物件來訪問(但靜態方法可以)。

由於靜態方法不需要通過物件即可呼叫,所以偽變數 $this 在靜態方法中不可用。

靜態屬性不可以由物件通過 -> 操作符來訪問。

用靜態方式呼叫乙個非靜態方法會導致乙個e_strict級別的錯誤。

靜態屬性只能被初始化為文字或常量,不能使用表示式。

可以把靜態屬性初始化為整數或陣列,但不能初始化為另乙個變數或函式返回值,也不能指向乙個物件。

自 php 5.3.0 起,可以用乙個變數來動態呼叫類。但該變數的值不能為關鍵字 self,parent 或 static。

9、靜態屬性通過  類名::屬性名 呼叫

靜態方法通過  類名::方法名() 呼叫

10、靜態方法中$this偽變數不允許使用,

self::屬性名              呼叫本類靜態屬性

self::方法名()       呼叫本類靜態方法

parent::屬性名         呼叫父類靜態屬性

parent::方法名()  呼叫父類靜態方法

class phone

public static function getcolor()

}class meizu extends phone

}$phone::color();

//呼叫內部靜態方法

echo $phone::getname();

PHP 類Static 靜態關鍵詞

class myclass1 public static function staticfun print myclass1 my var n 不例項化,用範圍解析操作符直接訪問靜態屬性,輸出php print myclass1 fun1 n 不例項化,用範圍解析操作符直接訪問公共方法,輸出php ...

php 類物件呼叫靜態方法

以前一直以為 靜態方法的呼叫 類名 靜態方法 非靜態方法的呼叫 類物件 非靜態方法 最近研究乙個類,發現乙個比較奇怪的問題,用 類物件 靜態方法 這種方式居然成功的呼叫了靜態方法。很疑惑,還以為是該類中定義了 call魔術方法,在通過物件呼叫不到該靜態方法的時候,做了處理,通過類名呼叫了該方法。但是...

C STL模板類和 static 靜態成員

1 從類模板例項化的每乙個模板類有自己的類模板資料成員,該模板類的所有物件共享乙個 static 資料成員 2 和非模板類的 static 資料成員一樣,模板類的 static 資料成員也應該在檔案範圍定義和初始化 3 static 資料成員也可以使用虛擬型別引數 t demo.cpp includ...