/**
* 静的完了変数はグローバルインスタンスを保存します
* @access private
*/
static private $_instance = NULL;
/**
* 外部オブジェクトがオブジェクトをインスタンス化するのを防ぐためのプライベート コンストラクター
* /
プライベート関数 __construct( ) {}
/**
* 外部オブジェクトの複製を防ぐプライベートクローン機能
*/
プライベート関数 __clone(){}
/**
* 静的メソッド、シングルトン統合アクセス入口
* @return object オブジェクトの唯一のインスタンスを返します
*/
静的パブリック関数 getInstance() {
if (is_null(self: :$_instance) || !isset(self::$_instance)) {
self::$_instance = 新しい self();
}
return self::$_instance;
}
/**
*テスト方法: ユーザー名を取得します
*/
public function getName() {
echo 'hello liguohua!';
}
}
上記のコードから、PHP シングルトン モードの実装に関する次の 3 つの主要なポイントを要約します:
1. クラスの唯一のインスタンス (通常は $_instance プライベート変数) を保存するには、静的メンバー変数が必要です。コンストラクター また、クローン関数はプライベートとして宣言する必要があります。これは、外部プログラムが新しいクラスを使用してシングルトン モードの意味を失わないようにするためです。
PHP シングルトン モードの欠点
ご存知のとおり、PHP 言語はインタープリタ型スクリプト言語であり、この動作メカニズムにより、各 PHP ページが解釈された後にすべての関連リソースがリサイクルされます。実行されました。言い換えれば、PHP には言語レベルでオブジェクトをメモリに常駐させる方法がありません。これは、たとえば Java では、ライフサイクル全体を通じて常に存在します。変数はページ間レベルであり、アプリケーションのライフサイクル内でこのインスタンスを真に一意にすることができます。ただし、PHP では、グローバル変数であろうとクラスの静的メンバーであろうと、すべての変数はページ レベルであり、ページが実行されるたびに新しいオブジェクトが再確立され、ページの実行後にクリアされます。 PHP のシングルトン モードは意味がないようなので、単一のページ レベルのリクエストで複数のアプリケーション シナリオが発生し、同じオブジェクト リソースを共有する必要がある場合にのみ、PHP シングルトン モードが非常に意味があると思います。
http://www.bkjia.com/PHPjc/327290.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/327290.html技術記事シングルトン パターンの主なポイントは 3 つあります。1 つ目は、クラスがインスタンスを 1 つだけ持つことができること、2 つ目は、このインスタンスを独自に作成する必要があること、3 つ目は、このインスタンスを独自にシステム全体に提供する必要があることです。 コードをコピー...