国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

幾種方式實現類名獲取以及實現單例模式

2024-05-04 21:51:01
字體:
來源:轉載
供稿:網友

今天小編將帶大家學習一下用PHP實現類名獲取以及實現單例模式,具有一定的參考價值,感興趣的朋友可以了解一下!

獲取類名的幾種方式

1.__CLASS__:獲取當前的類名

2.get_class():返回對象的類名

3.get_called_class():后期靜態綁定("Late Static Binding")類的名稱,即靜態方法調用者的類名

  1. <?php
  2.  
  3. class foo { 
  4.  
  5.     static public function test() { 
  6.  
  7.         echo "foo.__CLASS__:".__CLASS__."/n"
  8.  
  9.         echo "foo.get_class:".get_class()."/n"
  10.  
  11.         echo "foo.get_called_class:".get_called_class()."/n"
  12.  
  13.     } 
  14.  
  15.  
  16. class bar extends foo { 
  17.  
  18.  
  19. foo::test(); 
  20.  
  21. echo "/n"
  22.  
  23. bar::test(); 
  24.  
  25. ?> 

結果:

  1. //結果 
  2.  
  3. foo.__CLASS__:foo 
  4.  
  5. foo.get_class:foo 
  6.  
  7. foo.get_called_class:foo 
  8.  
  9. foo.__CLASS__:foo 
  10.  
  11. foo.get_class:foo 
  12.  
  13. foo.get_called_class:bar 

單例模式:確保一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。

  1. <?php 
  2.  
  3.   
  4.  
  5. //通過get_called_class實現單例模式 
  6.  
  7.   
  8.  
  9. class Singleton{ 
  10.  
  11.      
  12.  
  13.    private static $instance;  
  14.  
  15.    
  16.  
  17.     public static function getInstance() {  //靜態共有方法實例化對象 
  18.  
  19.         $class_name = get_called_class(); 
  20.  
  21.         if (isset(self::$instance[$class_name])) { 
  22.  
  23.             return self::$instance[$class_name]; 
  24.  
  25.         } 
  26.  
  27.         self::$instance[$class_name] = new $class_name
  28.  
  29.         return self::$instance[$class_name]; 
  30.  
  31.     } 
  32.  
  33.  
  34. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太原市| 洪湖市| 新干县| 海兴县| 正蓝旗| 海安县| 阿鲁科尔沁旗| 垣曲县| 仲巴县| 延安市| 临泉县| 淳化县| 杨浦区| 兴隆县| 江都市| 胶州市| 桐梓县| 卢湾区| 神农架林区| 侯马市| 辽阳市| 枞阳县| 阿拉善左旗| 庆元县| 含山县| 出国| 镇原县| 富平县| 余姚市| 沙湾县| 马尔康县| 天等县| 万安县| 云阳县| 翁源县| 阆中市| 永兴县| 光泽县| 望都县| 遵义县| 义马市|