Example #1
0
 /**
  * Test the getInstance method
  */
 public function testSingleton()
 {
     $a1 = A::getInstance();
     $a2 = A::getInstance();
     $this->assertEquals($a1, $a2);
     $b = B::getInstance();
     $this->assertNotEquals($a1, $b);
 }
Example #2
0
<?php

class A1
{
    public static function getInstance()
    {
        return new self();
    }
}
class B1 extends A1
{
}
$obj = B1::getInstance();
var_dump($obj);
//object(A1)#1 (0) { }
class A
{
    public static function getInstance()
    {
        return new static();
    }
}
class B extends A
{
}
$obj = B::getInstance();
var_dump($obj);
//object(B)#2 (0) { }