物件導向PHP之靜態延遲繫結

2021-09-11 21:12:35 字數 782 閱讀 6350

###定義 首先從字面上的意思來理解,「靜態」表示該用法是給靜態變數和方法來使用的,「延遲繫結」,是指在程式執行時而不是編譯時決定的。下面來看看**。 ###例項 首先我們定乙個父類

class

father

}複製**

再定義乙個子類

class

sonextends

father

複製**

分別呼叫子類和父類的printname方法

father::printname();

echo"";

son::printname();

複製**

執行結果如圖:

我們可以看到子類在呼叫繼承自父類的printname方法時,實際上是使用了父類的name屬性,可是在有的時候我們希望在子類在執行時呼叫自己類的name屬性。這時候我們就可以使用static關鍵字來進行靜態延遲繫結,使**在執行時決定使用哪個類的屬性。修改父類的**如下。

class

father

}複製**

再次執行如下:

我們可以看到在呼叫子類的繼承自父類的printname方法的時候static::$name會自動呼叫子類的$name屬性。做到了在執行時決定繫結。

php物件導向之 延遲繫結複習 132

燕十八 公益php講堂 論 壇 微 博 yy頻道 88354001 筆記部分 class animal public static function t1 public static function t2 class human extends animal class stu extends h...

PHP延遲靜態繫結

1 self用法 self是指向定義它的當前類的指標。當前類 current class class person 獲取年齡 public static function getage 輸出 self name i am person self age 18 2 static用法 static是指向...

PHP延遲靜態繫結

所謂延遲靜態繫結,顧名思義,靜態呼叫時 符號左側的部分的的繫結是延遲,也就是說不再被解析為定義當前方法所在的類,而是在實際執行時計算的。class people public static function eat class fatguy extends people public static ...