now that php ships with register globals off and more and more admins are turning it off due to security reasons, $do will not exist, and it must be accessed as $_GET['do'] so as good practice, and actually now necessary if you want to distribute php scripts or share code, using the autoglobal arrays is something you need to do.
and if you surpress any errors on $do because it doesnt exist, you switch will do very strange things and it wont be apparent why.