Ho uno script PHP chiamato in 2 modi da una chiamata Dojo Ajax xhrGet. La prima volta che viene chiamato con un argomento "init" che fa sì che lo script crei un'istanza della classe StateList e legga in un file di nomi di stato.Perché non posso memorizzare un'istanza di classe PHP come variabile 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 seconda e altre volte, un'altra chiamata xhrGet passa un argomento "getstate" e il seguente codice tenta di ottenere l'istanza ofr classe StateList dalla matrice SESSIONE.
if($comd =="getstate") {
$st= $_SESSION['statefile'];
phplog("size=".$st->getSize());
}
Tuttavia, il metodo getSize() non viene mai eseguito, né posso chiamare qualsiasi altro metodo sulla istanza di classe StateList ricostituito.
Si noti che questo è uno script PHP che include la definizione di classe nella parte superiore e quindi i metodi di classe dovrebbero essere noti e disponibili.
Cosa mi manca qui?
Cercare di evitare l'uso di @; scrivi semplicemente il tuo codice in modo che non ci siano errori da sopprimere. –