我正在嘗試在服務器上爲我創建的遊戲設置一個計時器,但我不斷收到'調用成員函數stop() 「對象」錯誤。錯誤:調用非對象上的成員函數
要開始的時候,我提出以下Ajax調用
$.post('game.php', {
action: 'start'
}, function(res) {
},'json');
當比賽結束我嘗試做以下Ajax調用
$.post('game.php', {
action: 'stop'
}, function(res) {
},'json');
game.php代碼停止計時器是
$action = $_POST['action'];
switch($action) {
case 'start':
$gameTime = new timer();
$gameTime->start();
break;
case 'stop':
$gameTime->stop();
break;
}
class Timer {
var $classname = "Timer";
var $start = 0;
var $stop = 0;
var $elapsed = 0;
# Constructor
function Timer($start = true) {
if ($start)
$this->start();
}
# Start counting time
function start() {
$this->start = $this->_gettime();
}
# Stop counting time
function stop() {
$this->stop = $this->_gettime();
$this->elapsed = $this->_compute();
}
# Get Elapsed Time
function elapsed() {
if (!$elapsed)
$this->stop();
return $this->elapsed;
}
# Get Elapsed Time
function reset() {
$this->start = 0;
$this->stop = 0;
$this->elapsed = 0;
}
#### PRIVATE METHODS ####
# Get Current Time
function _gettime() {
$mtime = microtime();
$mtime = explode(" ", $mtime);
return $mtime[1] + $mtime[0];
}
# Compute elapsed time
function _compute() {
return $this->stop - $this->start;
}
}
當我打電話來停止計時器,我得到的錯誤。 我試圖找出有什麼不對,並想知道是否因爲我正在做Ajax調用?
有沒有人知道一種方法來得到這個工作?
你知道PHP腳本**完成時會終止**嗎?您將無法打開/關閉計時器一段時間,因爲一旦腳本結束,計時器對象消失 –