Ok, this is something wierd I think. Maybe you can explain it?
With this code I get output on all three lines I want:
<?php
require_once('classes/class.Player.php');
$player = new Player;
$player->setUserID(2); // set from $_SESSION
$player->MySQL("xxx", "xxx", "xxx", "xxx");
//if($player->createPlayer("Timmy")) echo 'neat!'; else echo 'xxxx';
echo 'Player ID: '.$player->id;
$Player = $player->loadPlayer($player->getUserID());
echo '<br /><br /><br /><br />';
$_SESSION['Player'] = $player;
$p = $_SESSION['Player'];
echo 'Name :: '.$p->name;
class a {
function name() {
return "thorpe\n";
}
}
$_SESSION['a'] = new a;
echo '<br /><br /><br /><br />';
$b = $_SESSION['a'];
echo 'thorpe :: '.$b->name();
?>
With this code, I don't get the value printed for "Name :: "
echo 'Player ID: '.$player->id;
$Player = $player->loadPlayer($player->getUserID());
echo '<br /><br /><br /><br />';
$_SESSION['Player'] = $Player;
$p = $_SESSION['Player'];
echo 'Name :: '.$p->name;
The only difference in the code is:
$_SESSION['Player'] = $Player;
/** AND **/
$_SESSION['Player'] = $player;
I am thinking it is because when I initialize $Player, it is the return value of $player->loadPlayer(...). Which isn't anything. When I switch it to $player, I get good data due to $player obtaining the data I am looking for when $Player = $player->loadPlayer(...) is called.
Does that make sense? Am I right or wrong?