Andreas Korthaus: OOP - Methode nur einmal ausführen

Beitrag lesen

Hallo Philipp!

Das ging jetzt aber fix ;-)

Was spricht gegen die Lösung, ein privates Klassen-Attribut zu setzen, welches true ist,
wenn die Daten geladen sind bzw. false, wenn nicht? - In der Methode kannst du auf dieses
Attribut testen und ggf. die Daten einlesen. Bei mehreren Kunden ist dieses Attribut eben
ein assoziatives Array.

OK, wäre eine Möglichkeit. Oder könnte man nicht einfach beim Aufrufen  methode sowas machen:

class Basic {
    var $userid;

getUSerData($val) {
        if ($this->userid) {
            return $this->$val;
        }
        else {
            $db-query("SELECT...");
            $this->userid = $row->userid;
            ...
            return $this->$val;
        }
    }
}

???

Wenn du mehrere Methoden hast, die für Kundendaten spezialisiert sind und der Einfachheit
halber keine Indizies angeben möchtest (also welcher Kunde nun geänder werden soll),
halte ich das für eine gute Lösung, ja.

es geht um die DAten des eingeloggten Users, zum einen für Authentifizierung, aber auch email-Adresse für mails etc. Ich muß mit den Daten nichts machen außer sie den Scripten bereitszustellen, da dachte ich halt an eine Funktion wie oben beschreiben. Hierfür lohnt sich wohl keine eigene Klasse.

Außerdem habe ich bisher dazu tendiert immer eigene Klassen udn je eien Datei zu bilden, und die dann alle konditional mit include einzubinden, da habe ich aber oft 10 Dateien und mehr, ist vielleicht nicht immer der performanteste Weg, oder?

Grüße
Andreas