国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP OOP中后期靜態綁定介紹

2024-04-25 20:34:23
字體:
來源:轉載
供稿:網友

本文將對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

很明顯,結果不是我們預期的,這是因為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

可見,static::不在指向當前所在的類,實際上,它是在運行中計算的,強制獲取最終類的所有屬性。

因此,建議,以后不要再使用self::,使用static::

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 义乌市| 湛江市| 婺源县| 潼关县| 郴州市| 承德市| 万宁市| 龙海市| 武夷山市| 三门县| 乳山市| 类乌齐县| 东宁县| 上犹县| 柞水县| 渭南市| 长白| 兴隆县| 城步| 廉江市| 庆安县| 宣武区| 喀喇沁旗| 井研县| 齐河县| 芦山县| 闵行区| 罗定市| 鄂州市| 建德市| 洪洞县| 佛坪县| 瑞昌市| 仙游县| 勐海县| 旬阳县| 独山县| 堆龙德庆县| 昭觉县| 海伦市| 曲水县|