一文徹底搞懂php的后期靜態(tài)綁定舉例講解
舉個例子說明
看了很多人的解釋,都是照搬文檔,說得非常抽象。
這里我舉個例子說明一下,應(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)方法中,我想實(shí)例化一個子類,怎么辦?除了new static
, 沒有別的方法,因?yàn)槟愀静恢雷宇惖拿Q到底是什么,它可以被命名成任意合法的名稱。
還有其它場景,比如說在父類的靜態(tài)方法中調(diào)用子類的靜態(tài)方法,怎么辦?也是一樣static::childMethod()
結(jié)語
結(jié)合上面的例子和你自己的感悟,再去讀一讀文檔中的說明,是不是清晰了很多?
以上就是一文徹底搞懂php的后期靜態(tài)綁定舉例講解的詳細(xì)內(nèi)容,更多關(guān)于php后期靜態(tài)綁定的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PHP 文件編程綜合案例-文件上傳的實(shí)現(xiàn)
本篇文章是對PHP中文件上傳的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07php將print_r處理后的數(shù)據(jù)還原為原始數(shù)組的解決方法
下面小編就為大家?guī)硪黄猵hp中將print_r處理后的數(shù)據(jù)還原為原始數(shù)組的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考2016-11-11PHP和JAVA中的重載(overload)和覆蓋(override) 介紹
PHP不支持方法和操作符重載。JAVA不支持操作符的重載(但是“+”實(shí)際上是一種操作符重載)2012-03-03phpstorm斷點(diǎn)調(diào)試方法圖文詳解
這篇文章主要介紹了phpstorm斷點(diǎn)調(diào)試方法,結(jié)合圖文形式詳細(xì)分析了phpstorm斷點(diǎn)調(diào)試的基本配置方法、使用技巧與注意事項(xiàng),需要的朋友可以參考下2023-04-04