PHP基礎之類和對象9——static關鍵字
本頁說明了用 static 關鍵字來定義靜態(tài)方法和屬性。static 也可用于定義靜態(tài)變量以及后期靜態(tài)綁定。
聲明類屬性或方法為靜態(tài),就可以不實例化類而直接訪問。靜態(tài)屬性不能通過一個類已實例化的對象來訪問(但靜態(tài)方法可以)。
為了兼容 PHP 4,如果沒有指定訪問控制,屬性和方法默認為公有。
由于靜態(tài)方法不需要通過對象即可調用,所以偽變量 $this 在靜態(tài)方法中不可用。
靜態(tài)屬性不可以由對象通過 -> 操作符來訪問。
用靜態(tài)方式調用一個非靜態(tài)方法會導致一個?E_STRICT?級別的錯誤。
就像其它所有的 PHP 靜態(tài)變量一樣,靜態(tài)屬性只能被初始化為文字或常量,不能使用表達式。所以可以把靜態(tài)屬性初始化為整數(shù)或數(shù)組,但不能初始化為另一個變量或函數(shù)返回值,也不能指向一個對象。
Example #1 靜態(tài)屬性示例
class Foo{ public static $my_static = ’foo’; public function staticValue(){return self::$my_static; }}class Bar extends Foo{ public function fooStatic(){return parent::$my_static; }}print Foo::$my_static.’<br>’;$foo = new Foo();print $foo->staticValue().’<br>’;print $foo->my_static.’<br>’;print $foo::$my_static.’<br>’;$classname = ’Foo’;print $classname::$my_static;print Bar::$my_static.’<br>’;$bar = new Bar();print $bar->fooStatic().’<br>’;
相關文章:
