ホームページ > バックエンド開発 > PHPチュートリアル > [PHP] クラス名を取得してシングルトン モードを実装するいくつかの方法

[PHP] クラス名を取得してシングルトン モードを実装するいくつかの方法

little bottle
リリース: 2023-04-06 09:02:01
オリジナル
2908 人が閲覧しました

#今日は、エディターが 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();
?>
ログイン後にコピー

Result:

//结果
foo.__CLASS__:foo
foo.get_class:foo
foo.get_called_class:foo

foo.__CLASS__:foo
foo.get_class:foo
foo.get_called_class:bar
ログイン後にコピー

シングル ケース モード: クラスにインスタンスが 1 つだけあることを確認し、クラス自体をインスタンス化し、このインスタンスをシステム全体に提供します。

<?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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート