有人可以告诉我为什么这个switch
语句输出与if
语句不同?
更重要的是,我如何让他们输出相同的内容?
切换
switch ($list_day) {
case $today :
$calender .= '<td class="today">';
default :
$calender .= '<td>';
}
如果
if ($list_day == $today) {
$calendar.= '<td class="today">';
} else {
$calendar.= '<td>';
}
答案 0 :(得分:4)
您遗漏了break
声明:
switch ($list_day) {
case $today :
$calender .= '<td class="today">';
break;
default :
$calender .= '<td>';
}
如果没有中断switch语句,则继续执行下一个标签。这允许您将标签链接在一起:
switch($number) {
case 1: case 2: case 3:
echo '1 - 3';
break;
case 4:
echo '4';
break;
default
echo 'any other number';
}
答案 1 :(得分:1)
你忘了你的BREAK;
在Pascal样式代码中,例如pascal,visual basic,您不需要在每种情况下都是BREAK。但是在C-Style / Java / PHP / etc中你需要:
switch ($list_day) {
case $today :
$calender .= '<td class="today">';
break;
default :
$calender .= '<td>';
}
这可以用来做一些我想让你自己弄清楚的奇特事物!
答案 2 :(得分:1)
你有一个错字:
switch ($list_day) {
case $today :
$calendar .= '<td class="today">';
break;
default :
$calendar .= '<td>';
}
除了我之前提交的休息时,您输入了$ calender而不是$ calendar ...