我有Drupal 7
网站。我有以下Switch结构。
$day = (int)$node->field_hours_count[LANGUAGE_NONE][0]['value'];
switch ($day) {
case 1:
constructNode($node,"sunday");
echo 'node updated successfuly';
break;
case 2:
constructNode($node,"monday");
echo 'node updated successfuly';
break;
case 3:
constructNode($node,"tuesday");
echo 'node updated successfuly';
break;
default :
echo 'no node found';
exit();
}
此处constructNode()
是一个接受两个参数的函数。
function constructNode($node,$dayOfWeek)
{
//core operation
return $node;
}
问题是假设$ day = 1然后执行case 1
加上默认情况。对于$ day的每个值,default
案件正在执行。
php - 版本v 5.5.12
如何防止这种情况?
答案 0 :(得分:1)
问题是假设
$day = 1
然后执行案例1加上默认情况。对于$day
的每个值,默认情况都会被执行。
这不是Switch
语句的工作方式。执行任何案例后,break
退出语句,因此不会匹配任何其他内容。发生这种情况的唯一可能方法是,如果您使用不同的值调用Switch
语句两次。