Questo è quello che cercavo di dire...
mi sarebbe piaciuto che $a2 prendesse l'istanza di $a... ma $this non si può riassegnare (non è vero?)Codice PHP:
<?php
class Singleton {
private static $instanceArray = array();
public function __construct() {
$className = get_class($this);
if(!isset(self::$instanceArray[$className]))
self::$instanceArray[$className] = &$this;
else
throw new Exception("{$className} is Singleton");
}
public static function test() { /* questo metodo è da cancellare */
print "<pre>".print_r(self::$instanceArray, true)."</pre>";
}
}
class A extends Singleton {
public $prova;
public function setProva($newValue) {
$this->prova = $newValue;
}
}
class B extends Singleton {
}
$a = new A();
$a->setProva("Stringa da sovrascrivere");
$a2 = new A(); /* Questo produce un errore! */
//$a2->setProva("Stringa sovrascrivente");
$a->test();
//$a2->test();
$b = new B();
$b->test();
?>![]()