Ich habe ein PHP-Skript, das auf zwei Arten von einem Dojo Ajax xhrGet-Aufruf aufgerufen wird. Beim ersten Aufruf mit einem "init" -Argument bewirkt das Skript, dass eine Instanz der StateList-Klasse erstellt und eine Datei mit Zustandsnamen eingelesen wird.Warum kann ich eine PHP-Klasseninstanz nicht als SESSION-Variable speichern?
session_start();
@include('StateList.php');
require_once('phplog.php');
//start executing here
$comd=$_GET['nexturl'];
if($comd=="init") {
$st = new StateList("../data/statestxt.txt");
$_SESSION['statefile'] = $st;
}
Die zweiten und weitere Male durchläuft ein weiterer Anruf xhrGet A „GetState“ -Argument und der folgende Code versucht die Instanz der OFR StateList Klasse aus dem SESSION-Array zu erhalten.
if($comd =="getstate") {
$st= $_SESSION['statefile'];
phplog("size=".$st->getSize());
}
Allerdings ist die getSize() Methode nie ausgeführt wird, noch kann ich rufe eine andere Methode auf der wiederhergestellten StateList Klasseninstanz.
Beachten Sie, dass dies ein PHP-Skript ist, das die Klassendefinition an der Spitze enthält und daher die Klassenmethoden bekannt und verfügbar sein sollten.
Was fehlt mir hier?
Versuchen Sie es mit vermeiden @; Schreiben Sie Ihren Code einfach so, dass keine Fehler zu unterdrücken sind. –