Noch ein Grund für die Globalisierung: Was willst du denn machen, wenn du aus einer Funktion heraus die DB ansteuern möchtest? Da würdest du vermutlich gar nicht drüber nachdenken und entweder $GLOBALS['DB'] oder global $DB benutzen, oder?
...
Das wäre zum Beispiel so ein Problemfall. Ich könnte beispielsweiße die DB als Singleton nutzen, was ich aber nicht möchte, das ich gerne $this verwenden möchte.
Hier gehe ich gleich näher drauf ein.
Zitat von makkurona
Mhhh.. wie wärs wenn du der Datenbankklasse die Methoden und Eigenschaften der Exec Klasse eifnach vererbst?
...
Die Idee ist gar nicht so schlecht, aber für mich erscheint das nicht gerade als saubere Lösung. Desweiteren sind dann Methoden doppelt in Benutzung und das würde ich gerne vermeiden.
Zitat von Xardas der Dunkle
Damit die Classe immer gleich heißen, kann müsstest du logischer weise jede Version in eine eigene Datei auslagern.
Andere Möglichkeit währe, mit einer sogenannten singleton Classe/Function zu arbeiten:
mfG
...
Bei Singletons fehlt mir leider die $this Möglichkeit. Einige weniger restrikte Singletons kann man zwar zur Arbeit mit $this zwingen, aber genauer betrachtet erzeugt man dann eine normale Klasse und wenn es dumm läuft, erhält man in der zweiten Funktion, die ein $this verwendet und eine Klasse erzeugen möchte eine Fehlermeldung.
Hier noch ein Beispiel:
Ich versuche mich von der umständlichen Arraybildung zu trennen und sehe darin den Vorteil der OOP. In diesem Beispiel würde ich z.B. die Anzahl aller `Bewohner` der Stadt `Musterhausen` mit dem Nachnamen `Mustermann` zählen lassen:
Das könnte man auch mit nur einer Funktion lösen, beispielsweise:
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem