class-singleton

Tasarım Deseninde Sadece Tek Bir Nesne Örneğinin Olusmasına İzin Veren Yöntemdir.
Bu Yöntem Veritabanı Bağlantısı İçin kullanılır.
<?php
class db {
private static $instance=null;
private $value=null;
private function __construct($value){
$this->value=$value;
}
public static function getInstance() {
if(self::$instance ==null){
echo "<br>Yeni Olusturuldu<br>";
self::$instance = new self("Yenisi");
}else {
echo "<br>Zaten Vardı<br>";
}
return self::$instance;
}
}
$x= db::getInstance();
var_dump($x);
$y= db::getInstance();
var_dump($y);
?>
Çıktısı:
Yeni Olusturuldu
object(db)#1 (1) { ["value":"db":private]=> string(6) "Yenisi" }
Zaten Vardı
object(db)#1 (1) { ["value":"db":private]=> string(6) "Yenisi" }

Bir Diğer Örnek:
<?php
class db
{
private static $instance = NULL;

private static $DSN = 'mysql:host=localhost;dbname=deneme';

private function __construct()
{
}

public static function getInstance()
{
if (!self::$instance) {
self::$instance = new PDO(self::$DSN, 'root', '');
self::$instance->exec("SET NAMES utf8");
}
return self::$instance;
}

private function __clone()
{
}
}

$db = db::getInstance();
$sonuc = $db->query("SELECT * FROM uye");

foreach ($sonuc as $kayit) {
echo $kayit['ad'] ;
} */
?>