PHP基礎(chǔ)之類(lèi)和對(duì)象9——static關(guān)鍵字
本頁(yè)說(shuō)明了用 static 關(guān)鍵字來(lái)定義靜態(tài)方法和屬性。static 也可用于定義靜態(tài)變量以及后期靜態(tài)綁定。
聲明類(lèi)屬性或方法為靜態(tài),就可以不實(shí)例化類(lèi)而直接訪問(wèn)。靜態(tài)屬性不能通過(guò)一個(gè)類(lèi)已實(shí)例化的對(duì)象來(lái)訪問(wèn)(但靜態(tài)方法可以)。
為了兼容 PHP 4,如果沒(méi)有指定訪問(wèn)控制,屬性和方法默認(rèn)為公有。
由于靜態(tài)方法不需要通過(guò)對(duì)象即可調(diào)用,所以偽變量 $this 在靜態(tài)方法中不可用。
靜態(tài)屬性不可以由對(duì)象通過(guò) -> 操作符來(lái)訪問(wèn)。
用靜態(tài)方式調(diào)用一個(gè)非靜態(tài)方法會(huì)導(dǎo)致一個(gè)?E_STRICT?級(jí)別的錯(cuò)誤。
就像其它所有的 PHP 靜態(tài)變量一樣,靜態(tài)屬性只能被初始化為文字或常量,不能使用表達(dá)式。所以可以把靜態(tài)屬性初始化為整數(shù)或數(shù)組,但不能初始化為另一個(gè)變量或函數(shù)返回值,也不能指向一個(gè)對(duì)象。
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)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 什么是python的自省3. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題4. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)5. 圖文詳解vue中proto文件的函數(shù)調(diào)用6. php模擬實(shí)現(xiàn)斗地主發(fā)牌7. Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的幾種方案8. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備