如何将foreach-loop封装在switch-statement中?
我得到了这样的东西(不知道它是否正确):
$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在...”
发布于 2011-11-18 05:35:23
实际上,这是您的默认情况:
$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="...">元素。
发布于 2011-11-18 05:21:55
PHP不允许以编程方式创建case语句。
这样如何:
$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>';
}发布于 2011-11-18 05:22:22
这种方式是不可能的。你可以尝试类似这样的东西
if (in_array($list_day, $activiteiten))相反,
https://stackoverflow.com/questions/8174456
复制相似问题