Once control flow has been moved out of the current code block, any subsequent statements become effectively unreachable.

## Why is this an issue?

Some statements (`return`, `break`, `continue`, `goto`, `switch`) and `throw` expressions move control flow out of the current code block. So any unlabeled statements that come after such a jump are unreachable, and either this dead code should be removed, or the logic should be corrected.

### Noncompliant code example

    function fun($a) {
      $i = 10;
      return $i + $a;
      $i++;             // dead code
    }

### Compliant solution

    function fun($a) {
      $i = 10;
      return $i + $a;
    }

## Resources

- CWE - CWE-561 - Dead Code