Hello,
Das ist mir klar. Ein Script könnte aber auch durchaus etwas länger laufen und es wäre möglich, dass jemand auf die Idee kommt, mehrere Datenbankverbindungen nacheinander aufzubauen (wenn Chris die DB-Klasse als Singleton Pattern aufbaut, geht es ja nur nacheinander... oder?
Das Singleton-Pattern fuer Datenbankklassen soll ja eben genau das verhindern.
Das meinte ich nicht mit dem "oder?"
Damit meinte ich, dass die Klasse auf diese Weise nicht zweimal nacheinander, also erzeugen, zerstören, erzeugen ... benutzt werden kann, weil die Static-Variable auch nach dem Tod der Klasse erhalten bleibt. Die muss, soll die nochmalige Verwendung im selben Script erlaubt sein, dediziert aufgeräumt werden.
PHP ist da vielleicht etwas anders gestrickt als C++?
Hierzu Dein Beispiel etwas aufgebohrt:
<?php ### oop-001.php ###
class Test
{
static $_name;
public function __construct($name)
{
echo "Hello $name";
self::$_name = $name;
}
public function DoSth($var)
{
echo $var;
}
public function __destruct()
{
echo "World";
}
}
$Test = new Test('Thomas');
$Test->DoSth(' this is my ');
flush();
sleep(10);
echo " Klasse zerstören: ";
unset($Test);
flush();
sleep(10);
echo "ENDE ";
echo Test::$_name;
?>
Liebe Grüße aus dem Cyberspace
Tom vom Berg