Скажем, у меня есть URL-адрес, например, www.mysite.com/index.php?login=0 .  Можно ли переключать переменные case $ _GET и значения переменной переменной $ _GET? 
Что-то вроде:
 switch ($_GET) { case 'login' : switch($_GET['login']) { case '0' : echo 'Login failed!'; break; case '1' : echo 'Login successful.'; break; } break; case 'register' : switch ($_GET['register']) { case '0' : echo 'Registration failed!'; break; case '1' : echo 'Thank you for registering.'; break; } break; default : echo 'Some other message'; break; } 
Я не уверен, что случай переключения можно использовать на ассоциативных массивах. Что я делаю не так? Ура!
Вы должны заключить коммутатор в цикл foreach ().
 foreach ($_GET as $key => $value) { switch ($key) { case 'login' : switch ($value) { case '0' : echo 'Login failed!'; break; case '1' : echo 'Login successful.'; break; } break; case 'register' : switch ($value) { case '0' : echo 'Registration failed!'; break; case '1' : echo 'Thank you for registering.'; break; } break; default : echo 'Some other message'; break; } } 
Я не думаю, что это будет работать так, $ _get вернет массив, и эти сравнения не будут работать. Операторы switch должны оценивать константу.
Просто используйте это:
 switch($_GET['key']) //it will return you value of particular parameter. case 'value1': //write your statement here. break; case 'value2': //write your statement here. break; //and so on