这是switch语句。
仅当变量$thumbs_number
小于-1(例如-2,-3,-4等)时,才应输出类bad
。
但是现在,当bad
为0时,类$thumbs_number
也会被输出(-1和1具有正确的类:average
)。
<div class="topic-like-count
<?php // Apply style based on number of votes
switch ($thumbs_number) {
case ($thumbs_number < -1): echo ' bad'; break;
case ($thumbs_number == 0):
case ($thumbs_number == 1): echo ' average'; break;
case ($thumbs_number == 2):
case ($thumbs_number == 3): echo ' good'; break;
case ($thumbs_number == 4):
case ($thumbs_number == 5): echo ' great'; break;
case ($thumbs_number == 6):
case ($thumbs_number == 7): echo ' excellent'; break;
case ($thumbs_number > 7): echo ' brilliant'; break;
}
?>
">
发生了什么事?
答案 0 :(得分:9)
您滥用switch
声明。
每个case
语句将表达式的结果与传递给switch
的值进行比较。因此,您要将$thumbs_number
与($thumbs_number < -1)
的结果进行比较,true
或false
。
请改为:
switch ($thumbs_number) {
case 0:
case 1:
echo "average";
break;
case 2:
case 3:
echo "good";
break;
....
default:
if ($thumbs_number <= -1) echo "bad";
else if ($thumbs_number > 7) echo "brillant";
}
答案 1 :(得分:2)