文章詳情頁
一文徹底搞懂php的后期靜態綁定舉例講解
瀏覽:4日期:2022-06-13 18:45:40
目錄舉個例子說明結語舉個例子說明
看了很多人的解釋,都是照搬文檔,說得非常抽象。
這里我舉個例子說明一下,應該很多人能秒懂。
<?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靜態方法中,我想實例化一個子類,怎么辦?除了new static, 沒有別的方法,因為你根本不知道子類的名稱到底是什么,它可以被命名成任意合法的名稱。還有其它場景,比如說在父類的靜態方法中調用子類的靜態方法,怎么辦?也是一樣static::childMethod()
結語結合上面的例子和你自己的感悟,再去讀一讀文檔中的說明,是不是清晰了很多?
以上就是一文徹底搞懂php的后期靜態綁定舉例講解的詳細內容,更多關于php后期靜態綁定的資料請關注好吧啦網其它相關文章!
標簽:
PHP
相關文章:
1. PHP靜態綁定與動態綁定
排行榜
