Tach!
ein HTML-Formular besitzt drei Checkboxen. Dieses Formular schicke ich per submit ab, übergebe einem PHP-Objekt diese Daten
$myObject = new object();
$myObject->setBox1($_POST["box_1"]);
$myObject->setBox2($_POST["box_2"]);
$myObject->setBox3($_POST["box_3"]);
>
> und lese die Daten wieder aus, um die Status in den Checkboxen entsprechend anzuzeigen
> ~~~php
$myObject->getBox1();
> $myObject->getBox2();
> $myObject->getBox3();
Warum Getter und Setter? Bringen die dir einen konkreten Vorteil oder verbrauchen die nur einen Methodenaufruf, nur weil andere Systeme das auch so machen?
Nun möchte ich nach dem Speichern der Daten wieder meine Checkboxen mit den Werten füllen. Dazu würde ich wieder die getter aufrufen, wie gehabt. Aber ich möchte nun rein testweise dazu die Daten aus der Datenbank verwenden (ich weiß, es sind die gleichen Werte wie die aus $_POST).
Sollte man annehmen, solange du dich nicht in einem System mit nebenläufigen Prozessen befindest. Solche gibts aber kaum im Web-Umfeld. So zumindest die theoretische Betrachtung. Rein praktisch wird vielleicht die Wahrscheinlichkeit eher gering sein, dass dir ein anderer Prozess die Daten unterm Arsch weg ändert.
getBox1() soll also die Daten aus der Datenbank holen, und nicht den Wert, der von $_POST übergeben wurde. Wie macht man das?
a) man hat in der Methode getBox1() einen Schalter, der der Methode mitteilt, ob sie die Daten aus der DB nehmen soll, oder den aktuellen Zustand des Objektes
Dann macht die Methode eine Datenbankanfrage für den einen Wert und eine weitere für den nächsten und so weiter? Oder willst du dir hier Nebenwirkungen reinbringen und bei einer Abfrage gleich alle anderen Werte mit ändern?
b) man initialisiert das Objekt mit den Daten aus der DB nochmal neu
Besser ist das.
dedlfix.