Code: Select all
class DatabaseObject {
protected $id;
protected static $instance;
protected function __construct() {
$this->id = uniqid();
}
public function getId() {
return $this->id;
}
public static function &getInstance() {
if(!isset(self::$instance)) {
$class = get_class();
self::$instance = new $class();
}
return self::$instance;
}
}
Code: Select all
class One {
public function __construct() {
$db = DatabaseObject::getInstance();
echo "<p>Database Instance #{$db->getId()}</p>";
$db->one = "Accessed by Class One";
}
}
class Two {
public function __construct() {
$db = DatabaseObject::getInstance();
echo "<p>Database Instance #{$db->getId()}</p>";
echo "<p>{$db->one}</p>";
}
}
$one = new One();
$two = new Two();