今天小編將帶大家學習一下用PHP實現類別名稱獲取以及實現單例模式,具有一定的參考價值,有興趣的朋友可以了解一下!
取得類別名稱的幾種方式
1.__CLASS__:取得目前的類別名稱
2.get_class():傳回物件的類別名稱
3.get_called_class():後期靜態綁定("Late Static Binding")類別的名稱,即靜態方法呼叫者的類別名稱
<?php class foo { static public function test() { echo "foo.__CLASS__:".__CLASS__."\n"; echo "foo.get_class:".get_class()."\n"; echo "foo.get_called_class:".get_called_class()."\n"; } } class bar extends foo { } foo::test(); echo "\n"; bar::test(); ?>
結果:
//结果 foo.__CLASS__:foo foo.get_class:foo foo.get_called_class:foo foo.__CLASS__:foo foo.get_class:foo foo.get_called_class:bar
單例模式:確保一個類別只有一個實例,並且自行實例化並向整個系統提供這個實例。
<?php //通过get_called_class实现单例模式 class Singleton{ private static $instance; public static function getInstance() { //静态共有方法实例化对象 $class_name = get_called_class(); if (isset(self::$instance[$class_name])) { return self::$instance[$class_name]; } self::$instance[$class_name] = new $class_name; return self::$instance[$class_name]; } } ?>
相關教學:PHP影片教學
以上是【PHP】幾種方式實作類別名稱獲取以及實作單例模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!