PHP面向?qū)ο笾笃陟o態(tài)綁定功能介紹
本文將對PHP后期靜態(tài)綁定功能進行介紹,它主要用于解決在繼承范圍內(nèi)引用靜態(tài)調(diào)用的類。
首先來看下面這個例子:
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
很明顯,結(jié)果不是我們預期的,這是因為self::取決于定義時所在的類,而不是運行中的類。為了解決這個問題,你可能會在繼承類中重寫status()方法,更好的解決方案是PHP 5.3后添加了后期靜態(tài)綁定的功能。
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
可見,static::不在指向當前所在的類,實際上,它是在運行中計算的,強制獲取最終類的所有屬性。
因此,建議,以后不要再使用self::,使用static::
相關(guān)文章
uni-app結(jié)合PHP實現(xiàn)單用戶登陸demo及解析
這篇文章主要為大家介紹了uni-app結(jié)合PHP實現(xiàn)單用戶登陸示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
在TP5數(shù)據(jù)庫中四個字段實現(xiàn)無限分類的示例
今天小編就為大家分享一篇在TP5數(shù)據(jù)庫中四個字段實現(xiàn)無限分類的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Zend Framework實現(xiàn)將session存儲在memcache中的方法
這篇文章主要介紹了Zend Framework實現(xiàn)將session存儲在memcache中的方法,結(jié)合實例形式分析了Zend Framework框架下將session存儲在memcache的實現(xiàn)技巧,需要的朋友可以參考下2016-03-03
php微信公眾號開發(fā)(3)php實現(xiàn)簡單微信文本通訊
這篇文章主要介紹了php微信公眾號開發(fā)第三課,php實現(xiàn)簡單微信文本通訊,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12

