PHPの中の単一例は全体の内面の周期内の唯一の


シングル・インスタンス・モードは、BlogEngineのサイト構成で採用されるシングル・インスタンス・モードなど、場合によっては比較的有意義である.その中にロードされ保存されたコードは古典と言える.でもasp.Netはコンパイル型なので、単一の例はアプリケーションのライフサイクルに存在し続け、このインスタンスがアプリケーションのライフサイクルで一意性を実現します.PHPの一例モードの実現は以下の通りである.
class Stat{   
    static $instance = NULL;
    static function getInstance(){   
        if(self::$instance == NULL){   
            self::$instance = new Stat();   
        }   
        return self::$instance;   
    }   
       
    private function __construct(){   
    }   
       
    private function __clone(){   
    }       
    function sayHi(){   
        return "The Class is saying hi to u ";   
    }   
}   
echo Stat::getInstance()->sayHi();  
class Stat{
    static $instance = NULL;
    static function getInstance(){
        if(self::$instance == NULL){
            self::$instance = new Stat();
        }
        return self::$instance;
    }
    private function __construct(){
    }
    
    private function __clone(){
    }
    function sayHi(){
        return "The Class is saying hi to u ";
    }
}
echo Stat::getInstance()->sayHi();

しかし、PHPは解釈型の言語で、この中で単例を使うのはあまり役に立たないようで、ページ全体が実行されると変数も消えてしまいます.
static function getInstance(){   
       if(self::$instance == NULL){   
           self::$instance = new Stat();  //                 
       }   
       return self::$instance;   
   }  
 static function getInstance(){
        if(self::$instance == NULL){
            self::$instance = new Stat();  //              
        }
        return self::$instance;
    }

筆者の基本PHPの時間はそれほど長くないが,C#とPHPの2つの異なる言語環境における単一例パターンの認識を列挙したが,この例はパターンが多様な言語で効果を実現できることを説明するためにほかならないが,様々な言語環境で同じ効果を実現できることを意味するわけではない.asp.Netの単一の例はアプリケーションドメイン全体で一意です.PHPでは一例はページ期間全体で一意である.だから、環境が効果に与える影響をはっきり分けることができます!