目次
シングルトンの重要な機能
シングルトンクラスの実装
シングルトンの使用
ホームページ バックエンド開発 PHPチュートリアル PHPでシングルトンクラスを作成する方法は?

PHPでシングルトンクラスを作成する方法は?

Sep 27, 2025 am 06:18 AM
php シングルトンパターン

PHPのSingletonクラスは、プライベートコンストラクターを使用し、クローニングと非選択を防ぎ、プライベート静的プロパティに保存されている単一のインスタンスを返す静的メソッドを介してグローバルアクセスポイントを提供することにより、1つのインスタンスのみが存在することを保証します。

PHPでシングルトンクラスを作成する方法は?

PHPのシングルトンクラスは、アプリケーションライフサイクル全体にクラスの1つのインスタンスのみが作成されることを保証します。これは、データベース接続や構成オブジェクトなど、リソースへの集中アクセスが必要な場合に便利です。

シングルトンの重要な機能

PHPの適切なシングルトンクラスは次のことをしなければなりません。

  • プライベートコンストラクターを使用して外部インスタンス化を防ぎます
  • インスタンスのクローニングを防ぎます
  • 静的方法を介してグローバルなアクセスポイントを提供する
  • 単一のインスタンスをプライベート静的プロパティに保存します

シングルトンクラスの実装

PHPで基本的なシングルトンクラスを作成する方法は次のとおりです。

クラスデータベース{
    //単一のインスタンスを保持します
    private static $ instance = null;
<pre class='brush:php;toolbar:false;'>//直接的な作成を防ぐためのプライベートコンストラクター
プライベート関数__construct(){
    //ここで接続またはリソースを初期化します
    echo "データベース接続。\ n";
}

//クローニングを防ぎます
プライベート関数__clone(){}

//非正規化を防ぎます
プライベート関数__wakeup(){}

//インスタンスを取得するためのpublic staticメソッド
public static関数getInstance(){
    if(self :: $ instance === null){
        self :: $ instance = new self();
    }
    self :: $ instanceを返します。
}

//例
パブリック関数クエリ($ sql){
    エコー「実行:$ sql \ n」;
}

}

シングルトンの使用

このようなシングルトンインスタンスにアクセスしてください:

$ db1 = database :: getInstance();
$ db2 = database :: getInstance();
<p>//両方の変数は同じインスタンスを参照します
var_dump($ db1 === $ db2); // outputs:bool(true)</p> <p>$ db1-> query( "select * from users");</p>

このパターンは、1つのデータベース接続のみが作成され、リソースを節約し、一貫性を確保することを保証します。

基本的に、静的な方法を介してインスタンス化を制御し、外部の作成、クローニング、および脱派化をブロックします。

以上がPHPでシングルトンクラスを作成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHPにシングルトンパターンを実装する方法は? PHPにシングルトンパターンを実装する方法は? Sep 25, 2025 am 12:27 AM

Singleton Patternは、クラスに1つのインスタンスしかないことを保証し、単一のオブジェクトがデータベース接続や構成管理などのシステムの動作を調整するシナリオのグローバルアクセスポイントを提供します。 2。その基本構造には、プライベート静的属性ストレージインスタンス、プライベートコンストラクターが外部の作成を防ぎ、プライベートクローニング方法がコピーを防止し、インスタンスを取得するためのpublic staticメソッド(getInstance()など)が含まれます。 3. getInstance()メソッドを呼び出してPHPで一意のインスタンスを取得し、何回呼び出されても同じオブジェクト参照を返します。 4.標準のPHPリクエストモデルでは、スレッドの安全性を考慮する必要はありませんが、同期の問題は長期的またはマルチスレッド環境で注意を払う必要があり、PHP自体はネイティブロックメカニズムをサポートしていません。 5。シングルトンは便利ですが、

PHPでnull coulescingオペレーター(??)を使用する方法は? PHPでnull coulescingオペレーター(??)を使用する方法は? Sep 25, 2025 am 01:28 AM

回答:PHPの空のマージ演算子(??)は、変数キーまたは配列キーが存在し、nullではないかどうかを確認するために使用されます。それが本当なら、それはその値を返し、それ以外の場合はデフォルト値を返します。長いISSET()チェックの使用を回避し、$ username = $ userInput ?? 'guest'などの未定義の変数や配列キーの処理に適しています。

PHPクラスでインターフェイスを実装する方法は? PHPクラスでインターフェイスを実装する方法は? Sep 25, 2025 am 05:34 AM

Interfaceを実装するには、Implementsキーワードを使用すると、クラスはインターフェイス内のすべてのメソッドの特定の実装を提供する必要があります。 2。インターフェイスを定義して、インターフェイスキーワードを使用してメソッドを宣言します。 3。クラスはインターフェイスを実装し、メソッドをオーバーライドします。 4.オブジェクトを作成し、メソッドを呼び出して結果を出力します。 5.クラスは複数のインターフェイスを実装して、コードの仕様と保守性を確保することができます。

PHPのXSSを防ぐためにユーザー入力をサニタイズする方法は? PHPのXSSを防ぐためにユーザー入力をサニタイズする方法は? Sep 25, 2025 am 05:19 AM

topreventxssinphp、sanitizeuserininputandescapeoutput basedoncontextusinghtmlspecialchars()forhtml、json_encode()forjavascript、andvalidattlywithfilter_var()forexectedDatatypes

PHPを使用してHTMLフォームにメソッドを取得および投稿する方法は? PHPを使用してHTMLフォームにメソッドを取得および投稿する方法は? Sep 25, 2025 am 03:46 AM

GETメソッドは、非敏感な情報に適したURLにデータを添付します。 POSTメソッドは、リクエスト本体を介してデータを送信します。これは、より安全で機密情報に適しています。

MBTI無料テストWebサイトEntrant_MBTIパーソナリティテスト無料リンクアドレス MBTI無料テストWebサイトEntrant_MBTIパーソナリティテスト無料リンクアドレス Sep 24, 2025 pm 05:00 PM

MBTI無料テストWebサイトの入り口はhttps://www.16personalities.com/chです。プラットフォームは中国のインターフェイスを提供します。ユーザーは、基本バージョンと完全なバージョンを含むテストを匿名で実行できます。彼らは、約15〜20分で72の質問に関する複数選択の質問を完了します。このシステムは、パーソナリティタイプのコード、人格分析、キャリアソーシャルの提案をカバーするパーソナライズされたレポートを即座に生成し、PDFエクスポート、保持なしのデータ暗号化と処理をサポートします。

PHPで2つの配列の交差点を見つける方法は? PHPで2つの配列の交差点を見つける方法は? Sep 26, 2025 am 06:23 AM

array_intersect()関数を使用して、各配列に存在する要素を同時に返す2つの配列の交差点を見つけ、キー名は最初の配列から保持されます。たとえば、$ arr1 = ['apple'、 'banana'、 'orange']; $ arr2 = ['banana'、 'kiwi'、 'apple'];結果は['apple'、 'banana']です。

PHPでデフォルトのタイムゾーンを設定する方法は? PHPでデフォルトのタイムゾーンを設定する方法は? Sep 26, 2025 am 06:22 AM

setthededefaultimezoneinphpusingdate_default_timezone_set( 'americ/new_york');

See all articles