默认情况下总是执行Switch

时间:2016-08-02 11:22:59

标签: php drupal drupal-7 switch-statement

我有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

如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

  

问题是假设$day = 1然后执行案例1加上默认情况。对于$day的每个值,默认情况都会被执行。

这不是Switch语句的工作方式。执行任何案例后,break退出语句,因此不会匹配任何其他内容。发生这种情况的唯一可能方法是,如果您使用不同的值调用Switch语句两次。