この記事は、PHP シングルトン モードについて説明しています。興味のある方は、さらに学習してください。
シングルトン モードを使用する理由
情報をオンラインで確認し、後で確認できるように記録しました。
シングルトン モードには、名前が示すように、インスタンスが 1 つだけあります。これによりメモリとリソースが節約できます。主な理由は、PHP がデータベースを処理するときに、すべての新しいオブジェクトが一定量のリソースを消費するからです。
ご存知のとおり、PHP 言語は解釈されたスクリプト言語です。この動作メカニズムにより、各 PHP ページが解釈および実行された後に、関連するすべてのリソースがリサイクルされます。言い換えれば、PHP には、オブジェクトを言語レベルでメモリに常駐させる方法がありません。これは、asp.net や Java などのコンパイル型とは異なります。たとえば、Java では、シングルトンは、オブジェクトのライフ サイクル全体を通じて常に存在します。変数はクロスページ レベル
であり、これにより、このインスタンスがアプリケーションのライフ サイクル内で真に一意になる可能性があります。ただし、PHP では、グローバル変数であろうとクラスの静的メンバーであろうと、すべての変数はページ レベルであり、ページが実行されるたびに、新しいオブジェクトが再確立され、ページの実行後にクリアされます。 PHP のシングルトン モードは意味がないようなので、単一ページ
レベルのリクエスト中に複数のアプリケーション シナリオが発生し、同じオブジェクト リソースを共有する必要がある場合にのみ、PHP シングルトン モードが非常に意味があると思います。
早速、コードから始めましょう
<span style="font-size: 14px;"><span style="font-size: 12px;"><?php</span><br/><br/><span style="font-size: 12px;">class User</span><br/><span style="font-size: 12px;">{</span><br/><span style="font-size: 12px;"> /*</span><br/><span style="font-size: 12px;"> * 1、创建一个存放对象的私有化静态变量</span><br/><span style="font-size: 12px;"> * 2、私有化克隆方法</span><br/><span style="font-size: 12px;"> * 3、私有化构造方法</span><br/><span style="font-size: 12px;"> * 4、创建实例化对象的唯一入口</span><br/><span style="font-size: 12px;"> *</span><br/><span style="font-size: 12px;"> * **/</span><br/><span style="font-size: 12px;"> private static $_instance = '';</span><br/><span style="font-size: 12px;"> private function __clone(){}</span><br/><span style="font-size: 12px;"> private function __construct(){}</span><br/><span style="font-size: 12px;"> static public function getInstance()</span><br/><span style="font-size: 12px;"> {</span><br/><span style="font-size: 12px;"> if(is_null(self::$_instance) || isset(self::$_instance)){</span><br/><span style="font-size: 12px;"> self::$_instance = new User();</span><br/><span style="font-size: 12px;"> }</span><br/><span style="font-size: 12px;"> return self::$_instance;</span><br/><span style="font-size: 12px;"> }</span><br/><span style="font-size: 12px;"> public function getIp()</span><br/><span style="font-size: 12px;"> {</span><br/><span style="font-size: 12px;"> return $_SERVER['SERVER_ADDR'];</span><br/><span style="font-size: 12px;"> }</span><br/><span style="font-size: 12px;">}</span><br/><span style="font-size: 12px;">$op = User::getInstance();</span><br/><span style="font-size: 12px;">echo $op->getIp();</span><br/><br/></span>
関連チュートリアル: PHP ビデオ チュートリアル
以上がPHP シングルトン モードとサンプル コードの理解に関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。