you don't have to serialize your object to and from the session. PHP does that automatically. You can also use "$_SESSION['game']" directly as an object:
/*! must include game class definition before session_start() !*/
session_start();
if (!isset($_SESSION['game'])) {
$_SESSION['game'] = new StockGame();
$_SESSION['game']->buildGame();
}
if (!$_SESSION['game']->checkGameComplete()) {
$_SESSION['game']->nextGo();
$left = $_SESSION['game']->getTurnsRemaining();
} else {
session_destroy();
}
Or if you really want to use just $game, then you can do something like:
/*! must include game class definition before session_start() !*/
session_start();
if (!isset($_SESSION['game'])) {
$game = new StockGame();
$game->buildGame();
$_SESSION['game'] = $game;
} else {
$game = $_SESSION['game'];
}
if (!game->checkGameComplete()) {
$game->nextGo();
$left = $game->getTurnsRemaining();
} else {
session_destroy();
}
That should be ok with PHP 5, but with PHP 4, you will need to change the line "$SESSION['game'] = $game;" to "$SESSION['game'] =& $game;" and change "$game = $SESSION['game'];" to "$game =& $SESSION['game'];".