Moin,
[...]
In kleineren Beispielen besteht das "Hauptprogramm" ausserhalb der Klassen immer nur aus ein paar Zeilen, in etwa:
$x = new klasse();
print $x->dies();
print $x->das();Kann das Hauptprogramm denn auch so aussehen, oder ist das dann nicht mehr so elegant (und wenn nicht, wie geht's anders):
$x = new klasse();
if (irgendwas)
{
$x->mache_das();
}
else
{
$x->mache_jenes();
}
Selbstverständlich kannst du das machen. PHP ist keine reine OO Sprache.
Und noch was: Wie mache ich es am besten mit globalen Einstellungen, die für das ganze Skript gelten sollen. Normalerweise würde ich das so machen:
$einstellung = [Wert];
function irgendwas()
{
global $einstellung;
...
}
Wenn sich der Wert zur Laufzeit nicht verändert, kannst du ihn als Konstante definieren. Ansonsten übergibtst du ihn der Methode, welche diesen voraussetzt. Oder du Übergibst ihn beim Instanzieren einer Klasse dem Konstruktor, welcher dafür sorgt, dass der Wert in einer Eigenschaft des Objektes gespeichert wird und somit für alle Methoden der Klasse und der abgeleiteten Klassen 'sichtbar' ist.
Wenn du sicher stellen möchtest, dass das Objekt die Veränderungen des Wertes, welche an anderer Stelle stattfinden könnten, mitbekommt, übergibst du den Wert als Referenz.
Auf 'global' _sollte_ man verzichten -- muss man aber nicht.
Gruss Martin