J'ai un script PHP qui est appelé de deux manières à partir d'un appel Dojo Ajax xhrGet. La première fois qu'il est appelé avec un argument "init" qui provoque le script pour créer une instance de la classe StateList et lire dans un fichier de noms d'état.Pourquoi ne puis-je pas stocker une instance de classe PHP en tant que variable SESSION?
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;
}
La deuxième et d'autres fois, un autre appel xhrGet passe un argument « getstate » et le code suivant tente d'obtenir l'instance OFR la classe StateList du tableau SESSION.
if($comd =="getstate") {
$st= $_SESSION['statefile'];
phplog("size=".$st->getSize());
}
Cependant, la méthode getSize() est jamais exécuté, et je ne peux appeler toute autre méthode sur l'instance de classe StateList reconstitué.
Notez qu'il s'agit d'un script PHP qui inclut la définition de la classe en haut et donc les méthodes de classe doivent être connues et disponibles.
Qu'est-ce qui me manque ici?
Essayez d'éviter d'utiliser @; il suffit d'écrire votre code correctement afin qu'il n'y ait pas d'erreurs à supprimer. –