Hallo alle zusammen,
Seit dem ich längere Zeit mit Javascript arbeiten musste/durfte, bin ich auf den Geschmack von Referenzen statt Kopieen gekommen.
Nun versuche ich mir das in PHP auch etwas zu Nutze zu machen und wollte folgendes versuchen, was leider bislang noch nicht ganz funktionieren will oder ich evtl. hier zu viel von PHP erwarte oder es ganz einfach falsch anwende.
Ich habe mir eine kleine statische Klasse geschrieben, die ich für da allgemeine Handling der SESSION nutze. Diese hat eine kleine Methode, die mir aus der Session ein ganz bestimmtes Array als Referenz zurück gibt:
PHP-Code:
/* Get user data */
public function &getUserData()
{
if (!isset($this->session["usr"])) $this->session["usr"] = array();
return $this->session["usr"];
}
Diese Methode rufe ich in meiner UserKlasse ( nicht statisch ) auf und speichere den Rückgabewert in einer privat Variable:
PHP-Code:
/* Get all user data */
private function getUserData()
{
$session = new BaseSession();
$this->usr = &$session->getUserData();
$this->usr["test"] = 123;
}
Gebe ich mir in der Methode getUserData als letztes mal testweise die Session aus, so ist leider nichts vom angelegten ["test"] zu sehen/verfügbar.
Vielleicht ist es ja ein Denkfehler meinerseits aber ich dachte mir es so dass ich förmlich aus der Session einen ganz bestimmten Bereich der UserKlasse zur Verfügung stelle und in der die UserKlasse machen kann, was sie will. Die Idee der Referenz war dahingehend, dass ich dachte so direkt wieder in die Session schreiben zu können.
Wenn es so nicht funktionieren sollte, dann werd ich es wohl so machen, dass ich mir das UserArray hole und am Ende wieder an die SessionKlasse zum speichern gebe.
Sollte es dennoch anders gehen, freue ich mich auf Tipps...
Gruß Mario