我试图养成使用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
..我试过没有单引号,但它仍默认为“未知”..我做错了什么?
答案 0 :(得分:10)
您需要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'];
}
答案 1 :(得分:0)
AbraCadaver的答案解决了我的问题,但我想我会分享问题和解决方案,以防其他人使用。
最初,我没有在引号中附上我的案例。
switch ($month) {
case 01:
echo "January";
break;
等到12月份。这适用于除8月和9月以外的所有人。代码很好,(通过以下解决方案证明)。
为什么只有那两个月我不知道,但删除前导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;
}
非常奇怪,但希望这有助于某人。