PHP基礎(chǔ)之類和對象9——static關(guān)鍵字
本頁說明了用 static 關(guān)鍵字來定義靜態(tài)方法和屬性。static 也可用于定義靜態(tài)變量以及后期靜態(tài)綁定。
聲明類屬性或方法為靜態(tài),就可以不實(shí)例化類而直接訪問。靜態(tài)屬性不能通過一個(gè)類已實(shí)例化的對象來訪問(但靜態(tài)方法可以)。
為了兼容 PHP 4,如果沒有指定訪問控制,屬性和方法默認(rèn)為公有。
由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量 $this 在靜態(tài)方法中不可用。
靜態(tài)屬性不可以由對象通過 -> 操作符來訪問。
用靜態(tài)方式調(diào)用一個(gè)非靜態(tài)方法會導(dǎo)致一個(gè)?E_STRICT?級別的錯(cuò)誤。
就像其它所有的 PHP 靜態(tài)變量一樣,靜態(tài)屬性只能被初始化為文字或常量,不能使用表達(dá)式。所以可以把靜態(tài)屬性初始化為整數(shù)或數(shù)組,但不能初始化為另一個(gè)變量或函數(shù)返回值,也不能指向一個(gè)對象。
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>’;
相關(guān)文章:
