聲明類屬性或方法為靜態,就可以不實例化類而直接訪問。靜態屬性不能通過一個類已實例化的對象來訪問(但靜態方法可以)。
為了兼容 PHP 4,如果沒有指定訪問過程,屬性和方法默認為公有。
由於靜態方法不需要通過對象即可調用,所以偽變量 $this 在靜態方法中不可用。
靜態屬性不可以由對象通過 -> 操作符來訪問。
用靜態方式調用一個非靜態方法會導致一個 E_STRICT
級別的錯誤。
就像其它所有的 PHP 靜態變量一樣,靜態屬性只能被初始化為文字或常量,不能使用表達式。所以可以把靜態屬性初始化為整數或數組,但不能初始化為另一個變量或函數返回值,也不能指向一個對象。
自 PHP 5.3.0 起,可以用一個變量來動態調用類。但該變量的值不能為關鍵字 self,parent 或 static。
<?php class Person { public static function a(){ echo "star"; } public function b(){ echo "shine"; } } Person::a(); //調用靜態方法,可以直接調用 Person::b(); //調用普通方法,理論上是不能調用成功的,但是這里能調用成功,可能是因為php檢測不太完善,或者是??? ,反正理論上是不能這么寫的 ?>