Hi,
Komme so leider nicht zum Erfolg, die Variable wir immer als nicht registriert gemeldet.
vorab - du benutzt ein veraltetes Session-Handling. Man sollte statt session_register() und Konsorten besser das Array $_SESSION benutzen. Ob eine Variable in der Session gespeichert ist, fragt man dann mit isset($_SESSION['variable']) ab.
Ansonsten kann ich bei deinem Code keine Fehler entdecken (außer der eckigen Klammer nach dem else-Zweig, aber das wird wohl ein Flüchtigkeitsfehler sein). Zumindest keine Fehler, die die gewünschte Ausgabe verhindern würden. Ich habe es mal so getestet:
<?php
class TestObjekt
{
var $test;
function TestObjekt()
{
if (isset($_SESSION['test']))
{
echo "REGISTRIERT: ".$_SESSION['test'];
}
else
{
echo "NICHT REGISTRIERT";
$_SESSION['test'] = "Hello World!";
}
}
}
session_start();
$obj = new TestObjekt();
?>
nach einem Reload kommt bei mir die Ausgabe "REGISTRIERT: Hello World!" - also wie gewünscht. Bleibt nur noch anzumerken, dass du in deinem Code _nicht_ die Variable test des Objekts ansprichst, denn diese wird über $this->test angesprochen. Mit
$test = "Hello World!";
legst du lediglich eine lokale Variable innerhalb der Methode TestObjekt() an.
Gruß,
Andreas.