今天閑來無事,突然有個朋友問我self和static的區(qū)別?那么好,就讓我來跟大家解答一下這個問題。
self :它會調用當前類的方法;通俗來說,self就是寫在哪個類里面, 實際調用的就是這個類的方法。
static(延遲靜態(tài)綁定):在PHP5.3中,加入了一個新的特性,叫做延遲靜態(tài)綁定。它可以幫我們實現(xiàn)多態(tài)。簡單來說,延遲靜態(tài)綁定意味著,當我們用static關鍵字調用一個繼承方法時,它將在運行時綁定調用類。通俗來說,static代表使用的這個類,就是你在父類里寫的static,然后被子類覆蓋,使用的就是子類的方法或屬性。文章來源:http://www.zghlxwxcb.cn/news/detail-591553.html
廢話不多說,直接擼代碼
class Person {
public static function name ($nickname) {
echo $nickname;
}
public static function callSelf()
{
self::name('我是self里的nickname');
}
public static function callStatic()
{
static::name('我是static里的nickname');
}
}
class Man extends Person {
public static function name($nickname)
{
echo $nickname = '我是Man里的nickname';
}
}
Man::callSelf(); // 輸出: 我是self里的nickname
Man::callStatic(); // 輸出: 我是Man里的nickname
注:如果將Man里的name注釋掉,那么:Man::callStatic();將會調用父類里的name。 // 輸出: 我是static里的nickname
好啦,以上就是slef和static的區(qū)別啦。如有不同理解,請多多指教。文章來源地址http://www.zghlxwxcb.cn/news/detail-591553.html
到了這里,關于PHP中self和static的區(qū)別的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!