《PHP教程:php面向?qū)ο缶幊蘳elf和static的區(qū)別》要點(diǎn):
本文介紹了PHP教程:php面向?qū)ο缶幊蘳elf和static的區(qū)別,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
在php的面向?qū)ο缶幊讨?總會(huì)遇到PHP學(xué)習(xí)
class test{ public static function test(){ self::func(); static::func(); } public static function func(){} }
可你知道self和static的區(qū)別么?PHP學(xué)習(xí)
其實(shí)區(qū)別很簡(jiǎn)單,只需要寫(xiě)幾個(gè)demo就能懂:PHP學(xué)習(xí)
Demo for self:
PHP學(xué)習(xí)
class Car { public static function model(){ self::getModel(); } protected static function getModel(){ echo "This is a car model"; } }
Car::model();PHP學(xué)習(xí)
Class Taxi extends Car { protected static function getModel(){ echo "This is a Taxi model"; } }
Taxi::model();
得到輸出PHP學(xué)習(xí)
This is a car model This is a car model
可以發(fā)現(xiàn),self在子類中還是會(huì)調(diào)用父類的辦法PHP學(xué)習(xí)
Demo for static
PHP學(xué)習(xí)
class Car { public static function model(){ static::getModel(); } protected static function getModel(){ echo "This is a car model"; } } Car::model(); Class Taxi extends Car { protected static function getModel(){ echo "This is a Taxi model"; } } Taxi::model();
得到輸出PHP學(xué)習(xí)
This is a car model This is a Taxi model
可以看到,在調(diào)用static,子類哪怕調(diào)用的是父類的辦法,但是父類辦法中調(diào)用的辦法還會(huì)是子類的辦法(好繞嘴..)PHP學(xué)習(xí)
在PHP5.3版本以前,static和self還是有一點(diǎn)區(qū)別,具體是什么,畢竟都是7版本的天下了.就不去了解了.PHP學(xué)習(xí)
總結(jié)呢就是:self只能引用當(dāng)前類中的辦法,而static關(guān)鍵字允許函數(shù)能夠在運(yùn)行時(shí)動(dòng)態(tài)綁定類中的辦法.PHP學(xué)習(xí)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6757.html