说我有一个像www.mysite.com/index.php?login=0
这样的网址。是否可以切换大小写$ _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;
}
我不确定是否可以在关联数组上使用switch case。我究竟做错了什么?干杯!
答案 0 :(得分:10)
您必须将开关括在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;
}
}
答案 1 :(得分:0)
我不认为它会像这样工作,$ _get将返回一个数组,这些比较将无法正常工作。切换语句需要计算为常量。
答案 2 :(得分:-2)
只需使用:
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