今天小編將帶大家學習一下用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];
- }
- }
- ?>
|
新聞熱點
疑難解答