![](/img/trans.png)
[英]php return inside switch case is working but return after switch is not working
[英]Switch/Case not working PHP
我试图养成使用switch / case而不是if的习惯。 我有以下花絮:
switch($res['perm']){
case '0': $perm = "Invalid";
case '1': $perm = "Operator";
case '2': $perm = "Team Lead";
case '3': $perm = "Admin";
default: $perm = "Unknown - ".$res['perm'];
}
其中$res['perm'] = (int) 3
..我也尝试不使用单引号,但是它仍然默认为“ Unknown” ..我在做什么错?
您需要break
switch
,否则它将始终达到default
:
switch($res['perm']){
case '0': $perm = "Invalid"; break;
case '1': $perm = "Operator"; break;
case '2': $perm = "Team Lead"; break;
case '3': $perm = "Admin"; break;
default: $perm = "Unknown - ".$res['perm'];
}
AbraCadaver的回答解决了我的问题,但是我想我会分享问题和解决方案,以防其他人使用。
最初,我没有将案件用引号引起来。
switch ($month) {
case 01:
echo "January";
break;
等到十二月。 这适用于除八月和九月以外的所有时间。 代码很好,(由以下解决方案证明)。
为什么只是我不知道的那两个月,但是删除前导0可以解决问题,就像在案件中添加引号一样,这就是我想要的。 所以:
switch ($month) {
case '01':
echo "January";
break;
case '02':
echo "February";
break;
case '03':
echo "March";
break;
case '04':
echo "April";
break;
case '05':
echo "May";
break;
case '06':
echo "June";
break;
case '07':
echo "July";
break;
case '08':
echo "August";
break;
case '09':
echo "September";
break;
case '10':
echo "October";
break;
case '11':
echo "November";
break;
case '12':
echo "December";
break;
}
很奇怪,但是希望这对某人有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.