php靜態延遲繫結的實現

2021-07-23 15:35:03 字數 480 閱讀 8985

靜態延遲繫結:

在一定的需求場景下,你有乙個父類和一些子類,你需要獲取這些子類的例項又不想在每個子類中寫重複的getinstance()方法(子類例項化)。

php5.3之後加入的新的特性:靜態延遲繫結。這個特性允許在執行時獲取靜態繼承的上下文。

<?php

abstract class base

return self::$instance[$class];

}public abstract function getname();

}class a extends base

}class b extends base

}echo a::getinstance()->getname(), "\n";

echo b::getinstance()->getname(), "\n";

程式輸出:

ab

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 ...

PHP靜態延遲繫結

php版本5.3起增加了靜態延遲繫結,也稱遲繫結,主要用於在繼承範圍內引用靜態呼叫的類。簡單地來說 static 不再被解析為當前方法所定義的類,而是在實際執行時計算的。意外的繼承 class person class man extends person echo man say person在這...