首頁  >  文章  >  後端開發  >  【PHP】幾種方式實作類別名稱獲取以及實作單例模式

【PHP】幾種方式實作類別名稱獲取以及實作單例模式

little bottle
little bottle原創
2019-04-23 09:46:122834瀏覽

今天小編將帶大家學習一下用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn