ホームページ >バックエンド開発 >PHPの問題 >PHPでシングルトンとは何を意味しますか

PHPでシングルトンとは何を意味しますか

WBOY
WBOYオリジナル
2022-05-06 10:57:492115ブラウズ

PHP では、シングルトンとは、クラスがインスタンスを 1 つだけ持つことを意味します。アプリケーション全体の特定のクラスがオブジェクト インスタンスを 1 つだけ持つ設計パターン、つまりシングルトン パターンでの自己インスタンス化を指します。アプリケーション全体に影響します。システムはこのインスタンスをグローバルに提供し、インスタンスのコピーを作成しません。代わりに、シングルトン クラス内に格納されているインスタンスへの参照を返します。

PHPでシングルトンとは何を意味しますか

この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター

php のシングルトンの意味は何ですか?

シングルトン パターンとは、特定のクラスがアプリケーション全体でオブジェクト インスタンスを 1 つだけ持つ設計パターンを指します。具体的には、オブジェクト作成の方法として、シングルトン パターンは、クラスがインスタンスを 1 つだけ持つことを保証し、クラス自体をインスタンス化し、このインスタンスをシステム全体にグローバルに提供します。インスタンスのコピーは作成されませんが、シングルトン クラス内に格納されているインスタンスへの参照を返します。

A クラスには 1 つだけのインスタンスがあり、それがインスタンス化され、プログラム全体で使用できるように提供されます。これは、プログラム全体の実行中、このクラスが 1 つだけのインスタンスを持つことを保証すると理解できます。外部の世界に 1 つを提供し、そのグローバル アクセス ポイントにアクセスします。

シングルトン モードの特徴

シングルトン モードの主な機能は、「3 つのプライベートと 1 つのパブリック」です。

保存されたファイルの一意のインスタンスが必要です。 class Private static member variables

外部プログラムがオブジェクトを新規作成してシングルトンの意味を失うことを防ぐために、コンストラクターは private で宣言する必要があります

クローン関数は、オブジェクトが複製されないようにします

このインスタンスにアクセスするには、パブリック静的メソッド (通常は getInstance という名前) を提供する必要があります。これにより、一意のインスタンスへの参照が返されます。

シングルトン モードを使用する理由とシナリオ

PHP のほとんどのアプリケーションでは、多数のデータベース操作が行われます。シングルトン モードを使用しない場合は、その後、毎回新しい操作が必要になりますが、新しい操作のたびに多くのシステム リソースとメモリ リソースが消費され、データベースを開いたり閉じたりするたびに、それは大きなテストとなり、データベースの無駄になります。したがって、シングルトン パターンはデータベース操作クラスでよく使用されます。

同様に、システム内で特定の構成情報をグローバルに制御するクラスが必要な場合、シングルトン モードを使用して簡単に実装できます。

PHP シングルトン モードの実装

以下は、データベース操作クラスを実装するための PHP シングルトン モードのフレームワークです。

<?php
 class Db{
 const DB_HOST=&#39;localhost&#39;;
 const DB_NAME=&#39;&#39;;
 const DB_USER=&#39;&#39;;
 const DB_PWD=&#39;&#39;;
 private $_db;
 //保存实例的私有静态变量
 private static $_instance;
 //构造函数和克隆函数都声明为私有的
 private function __construct(){
  //$this->_db=mysql_connect();
 }
 private function __clone(){
  //实现
 }
 //访问实例的公共静态方法
 public static function getInstance(){
  if(!(self::$_instance instanceof self)){
  self::$_instance=new self();
  }
  //或者
  if(self::$_instance===null){
  self::$_instance=new Db();
  }
  return self::$_instance;
 }
 public function fetchAll(){
  //实现
 }
 public function fetchRow(){
  //实现
 }
 }
 //类外部获取实例的引用
 $db=Db::getInstance();
?>

推奨調査: " PHP ビデオ チュートリアル >>

以上がPHPでシングルトンとは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。