Tôi có một tập lệnh PHP được gọi theo 2 cách từ cuộc gọi Dojo Ajax xhrGet. Lần đầu tiên nó được gọi với một đối số "init" gây ra kịch bản để tạo ra một thể hiện của lớp StateList và đọc trong một tập tin của các tên tiểu bang.Tại sao tôi không thể lưu trữ một cá thể lớp PHP dưới dạng biến 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;
}
Lần thứ hai và lần tiếp theo, một cuộc gọi xhrGet khác vượt qua đối số "getstate" và mã sau đây cố gắng lấy dụ của lớp StateList từ mảng SESSION.
if($comd =="getstate") {
$st= $_SESSION['statefile'];
phplog("size=".$st->getSize());
}
Tuy nhiên, phương pháp getSize() không bao giờ được thực hiện, cũng không phải tôi có thể gọi bất kỳ phương pháp nào khác trên dụ lớp StateList tái.
Lưu ý rằng đây là một tập lệnh PHP KHÔNG bao gồm định nghĩa lớp ở đầu trang và do đó các phương thức lớp học nên được biết và có sẵn.
Tôi thiếu gì ở đây?
Cố gắng tránh sử dụng @; chỉ cần viết mã của bạn đúng cách để không có bất kỳ lỗi nào để ngăn chặn. –