Example #1
0
    }
}
class SecondState implements State
{
    public function execute(Troll $troll)
    {
        if ($troll->isSecondState()) {
            $troll->second();
        }
    }
}
class ThirdState implements State
{
    public function execute(Troll $troll)
    {
        if ($troll->isThirdState()) {
            $troll->third();
        }
    }
}
$uid = 10001;
$troll = new Troll($uid);
$firstState = new FirstState();
$troll->changeState($firstState);
$troll->Update();
$secondState = new SecondState();
$troll->changeState($secondState);
$troll->Update();
$thirdState = new ThirdState();
$troll->changeState($thirdState);
$troll->Update();