## Why is this an issue?

Nested `switch` structures are difficult to understand because you can easily confuse the cases of an inner `switch` as belonging to an outer statement. Therefore nested `switch` statements should be avoided.

Specifically, you should structure your code to avoid the need for nested `switch` statements, but if you cannot, then consider moving the inner `switch` to another function.

### Noncompliant code example

    switch($a) {
      case "foo":
        switch($b) { // Noncompliant
          case "bar":
            doSomething();
          break;
        }
      break;
    }

### Compliant solution

    function handleFoo($foo) {
      switch($foo) {
        case "bar":
          doSomething();
        break;
      }
    }

    switch($a) {
      case "foo":
        handleFoo($b);
      break;
    }