《PHP實例:PHP面向對象之后期靜態綁定功能介紹》要點:
本文介紹了PHP實例:PHP面向對象之后期靜態綁定功能介紹,希望對您有用。如果有疑問,可以聯系我們。
PHP學習本文將對PHP后期靜態綁定功能進行介紹,它主要用于辦理在繼承范圍內引用靜態調用的類.
PHP學習起首來看下面這個例子:
代碼如下:
class Person
{
?
??? public static function status()
??? {
??????? self::getStatus();
??? }
?
??? protected static function getStatus()
??? {
??????? echo "Person is alive";
??? }
?
}
?
class Deceased extends Person
{
?
??? protected static function getStatus()
??? {
??????? echo "Person is deceased";
??? }
?
}
?
Deceased::status(); //Person is alive
PHP學習很明顯,結果不是我們預期的,這是因為self::取決于定義時所在的類,而不是運行中的類.為了解決這個問題,你可能會在繼承類中重寫status()辦法,更好的解決方案是PHP 5.3后添加了后期靜態綁定的功能.
代碼如下:
class Person
{
?
??? public static function status()
??? {
??????? static::getStatus();
??? }
?
??? protected static function getStatus()
??? {
??????? echo "Person is alive";
??? }
?
}
?
class Deceased extends Person
{
?
??? protected static function getStatus()
??? {
??????? echo "Person is deceased";
??? }
?
}
?
Deceased::status(); //Person is deceased
PHP學習可見,static::不在指向當前地點的類,實際上,它是在運行中計算的,強制獲取最終類的所有屬性.
PHP進修因此,建議,以后不要再使用self::,使用static::
歡迎參與《PHP實例:PHP面向對象之后期靜態綁定功能介紹》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/10841.html