phpbar.de logo

Mailinglisten-Archive

[php] objekte in sessions

[php] objekte in sessions

Lars Brinkmann brinkmann.lars at gmail.com
Fre Apr 15 11:35:34 CEST 2005


Hallo Oliver,

> ---------- 8< ---------
> include ('class.php');
> session_start();
> if (!isset($_SESSION['obj'])) {
>    session_register ('obj');
>    $obj = new test();
>    $obj->var = 20;
> }
Hm. Mit session_register['obj'] registrierst Du eine Variable in der
Session. Diese hat aber keinen Wert. Dann instanziert Du ein neues
Objekt und weist einer Objektvariablen den Wert 20 zu. In der Session
wird das aber nicht gespeichert. Ich gehe mal davon aus, dass Du den
$obj->var - Wert in der Session speichern möchtest. Dein Script müsste
dann so aussehen:
if (!isset($_SESSION['obj'])) {
  $obj = new test();
  $obj->var = 20;
  $_SESSION['obj'] = $obj->var;
}

Ab PHP 4.1 ist statt session_register übrigens $_SESSION vorzuziehen.

> Beim ersten Aufruf wird $obj sauber erzeugt, bei den folgenden Aufrufen
> ist $obj->var=0, obwohl der erste if-Zweig nicht durchlaufen wird!?!?
Klar. Die Session ist ja gesetzt. Allerdings ohne Wert.

Viele Grüße, Lars Brinkmann

php::bar PHP Wiki   -   Listenarchive