文章詳情頁
一文徹底搞懂php的后期靜態(tài)綁定舉例講解
瀏覽:2日期:2022-06-13 18:45:40
目錄舉個例子說明結(jié)語舉個例子說明
看了很多人的解釋,都是照搬文檔,說得非常抽象。
這里我舉個例子說明一下,應(yīng)該很多人能秒懂。
<?php interface FactoryInterface{ public function create();}abstract class Factory implements FactoryInterface{ public static $instance = null; public function create() {throw new \Exception('Please implement create method.'); } public static function getInstance() {if (is_null(self::$instance)) { self::$instance = new static();}return self::$instance; }}class Car{ public function run() {echo 'I'm running'; }}class CarFactory extends Factory{ public function create() {return new Car(); }}CarFactory::getInstance()->create()->run();上面這個抽象類的getInstance靜態(tài)方法中,我想實例化一個子類,怎么辦?除了new static, 沒有別的方法,因為你根本不知道子類的名稱到底是什么,它可以被命名成任意合法的名稱。還有其它場景,比如說在父類的靜態(tài)方法中調(diào)用子類的靜態(tài)方法,怎么辦?也是一樣static::childMethod()
結(jié)語結(jié)合上面的例子和你自己的感悟,再去讀一讀文檔中的說明,是不是清晰了很多?
以上就是一文徹底搞懂php的后期靜態(tài)綁定舉例講解的詳細(xì)內(nèi)容,更多關(guān)于php后期靜態(tài)綁定的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
標(biāo)簽:
PHP
相關(guān)文章:
排行榜
