コード例 #1
0
 public static function getInstance()
 {
     //自らを表すインスタンスは、関数内static変数としても良い
     if (!isset(self::$instance)) {
         self::$instance = new SingletonSample();
         printLine('a SingletonSample instance was created !', true);
     }
     return self::$instance;
 }
コード例 #2
0
ファイル: index.php プロジェクト: yinm/yinm.github.io
<?php

class SingletonSample
{
    private static $instance;
    private function __construct()
    {
    }
    public static function getInstance()
    {
        if (self::$instance == null) {
            self::$instance == new self();
        }
        return self::$instance;
    }
}
$ins1 = SingletonSample::getInstance();
$ins2 = SingletonSample::getInstance();
if ($ins1 === $ins2) {
    echo "同一インスタンスです";
} else {
    echo "違うインスタンスです";
}
コード例 #3
0
 public function testSetInstance()
 {
     $sample = new SingletonSample();
     SingletonSample::setInstance($sample);
     $this->assertEquals($sample, SingletonSample::getInstance());
 }