Instanzen von Klassen in $_SESSION["bla"] speichern ...
-
Instanzen von Klassen unterscheiden sich hier in gewissem Sinne von normal Variablen, aber ich finde nirgens eine Erklärung dafür. Wie kann ich nun einen Instanz einer selbst geschriebenen Klasse in dem assoziativen Array $_SESSION speichern, so dass ich sie nachher wieder verwenden kann? Ohne irgendwas kommt immer die Fehlermeldung:
Fatal error: Unknown(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition <b>navigationitem</b> of the object you are trying to operate on was loaded _before_ the session was started in c:\programme\apache group\apache\htdocs\bla.php on line 22
Danke schön im Voraus
-
ich denke
$c=new DeineKlasse(); session_register("c"); //<- nicht die Variable, sondern den namen übergeben
sollte das gewünschte Ergebnis bringen...
-
Ich habe gemerkt, dass es auch ohne session_register und sowas funktioniert, wenn ich die files in der die KLassen codiert sind vor session_start include.
<?php include("./a.php"); // << include hier vor session_start, dann gehts session_start(); if(!isset($_SESSION["asdf"])) { $_SESSION["asdf"] = new Blo("ble", true); } echo "<html><head><title>blo</title></head><body><h1>"; $_SESSION["asdf"]->addText("blu"); $_SESSION["asdf"]->echoBlo(); echo "</h1></body></html>"; ?>
Passt das so?
-
jo.
hat ja schon die Fehlermeldung so gesagt
session_register verwendet man heute nicht mehr.
-
also einfach nur noch
session_start(); $_SESSION["foo"]="bar";
?
-
ja