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. Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求2. 一文帶你徹底理解Java序列化和反序列化3. JS中6個(gè)對(duì)象數(shù)組去重的方法4. Python基于requests庫(kù)爬取網(wǎng)站信息5. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法6. python中文本字符處理的簡(jiǎn)單方法記錄7. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能8. Python使用Selenium自動(dòng)進(jìn)行百度搜索的實(shí)現(xiàn)9. PHP利用curl發(fā)送HTTP請(qǐng)求的實(shí)例代碼10. 資深程序員:給Python軟件開(kāi)發(fā)測(cè)試的25個(gè)忠告!

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