奇怪的 switch 语句行为

发布于 2024-12-16 18:39:54 字数 490 浏览 1 评论 0原文

有人可以告诉我为什么这个 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>';
    }

Can someone show me why this switch statement doesn't output the same as the if statement?
And more important, how do I get them to output the same?

Switch

switch ($list_day) { 
        case $today : 
            $calender .= '<td class="today">';
        default : 
            $calender .= '<td>';
    }

If

if ($list_day == $today) {
        $calendar.= '<td class="today">';
    } else {
        $calendar.= '<td>';
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不弃不离 2024-12-23 18:39:54

您缺少 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';
}

You are missing your break statements:

switch ($list_day) { 
        case $today : 
            $calender .= '<td class="today">';
            break;
        default : 
            $calender .= '<td>';
    }

If you don't break out of the switch statement execution just continues with the next label. This allows you to chain labels together:

switch($number) {
case 1: case 2: case 3:
  echo '1 - 3';
  break;
case 4:
  echo '4';
  break;
default
  echo 'any other number';
}
终陌 2024-12-23 18:39:54

您有一个拼写错误:

switch ($list_day) { 
    case $today : 
        $calendar .= '<td class="today">';
        break;
    default : 
        $calendar .= '<td>';
}

除了我之前提交的中断之外,您还输入了 $calender 而不是 $calendar...

You have a typo:

switch ($list_day) { 
    case $today : 
        $calendar .= '<td class="today">';
        break;
    default : 
        $calendar .= '<td>';
}

As well as the break i previously submitted, you typed $calender instead of $calendar...

扛刀软妹 2024-12-23 18:39:54

你忘记了 BREAK;

在 Pascal 风格代码(例如 pascal、Visual Basic)中,您不需要对每种情况进行 BREAK。但在 C 风格/Java/PHP/等中,你需要:

switch ($list_day) { 
    case $today : 
        $calender .= '<td class="today">';
        break;
    default : 
        $calender .= '<td>';
}

这可以用来做一些奇特的事情,我会让你自己弄清楚!

You forgot your BREAK;

In Pascal style code such as pascal, visual basic, you don't need to BREAK on each case. But in C-Style/Java/PHP/etc you need:

switch ($list_day) { 
    case $today : 
        $calender .= '<td class="today">';
        break;
    default : 
        $calender .= '<td>';
}

This can be used to do some fancy things that i'll let you figure out yourself!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文