首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在switch-语句中使用Foreach

在switch-语句中使用Foreach
EN

Stack Overflow用户
提问于 2011-11-18 05:19:23
回答 3查看 7.1K关注 0票数 1

如何将foreach-loop封装在switch-statement中?

我得到了这样的东西(不知道它是否正确):

代码语言:javascript
复制
    $activiteiten = array(2,9,11);

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

             foreach ($activiteiten as &$value) {
                case $value : 
                $calendar .= '<td class="date_has_event">';
                break;
             }

            default : 
                $calendar .= '<td>';
        }

我得到的错误是“解析错误:语法错误,意外的T_CASE在...”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-18 05:35:23

实际上,这是您的默认情况:

代码语言:javascript
复制
$activiteiten = array(2,9,11);

switch ($list_day)
{ 
    case $today:

        $calendar .= '<td class="today">';
        break;

    default:

         foreach ($activiteiten as $value)
         {
            if ($list_day === $value)
            {
                $calendar .= '<td class="date_has_event">';
                break 2; # !!
            }
         }

        $calendar .= '<td>';
}

但是,您可以(应该)先使用一些逻辑来获取$class,如果它仍然是空的,则创建一个空的<TD>元素,如果设置了该元素,则创建一个<TD class="...">元素。

票数 2
EN

Stack Overflow用户

发布于 2011-11-18 05:21:55

PHP不允许以编程方式创建case语句。

这样如何:

代码语言:javascript
复制
$activiteiten = array(2,9,11);

if ($list_day == $today){
    $calendar.= '<td class="today">';
}elseif(in_array($list_day, $activiteiten)){
    $calendar .= '<td class="date_has_event">';
}else{
    $calendar .= '<td>';
}
票数 3
EN

Stack Overflow用户

发布于 2011-11-18 05:22:22

这种方式是不可能的。你可以尝试类似这样的东西

代码语言:javascript
复制
if (in_array($list_day, $activiteiten))

相反,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8174456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档