PHP

PHP

Made by DeepSource

switch statement contains multiple default cases PHP-E1114

Bug risk
Critical

default case in a switch statement is invoked when none of the cases specified matches the switch condition. It is therefore recommended to have only one default case. Having more than one default case would result in a runtime error.

Bad practice

switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    default:
        echo "another default";
    case 2:
        echo "i equals 2";
        break;
    // invalid: default is already used
    default:
       echo "i is not equal to 0, 1 or 2";
}

Recommended

Make sure switch statement only contains one default case. It is advised to get rid of extra default cases:

switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
       echo "i is not equal to 0, 1 or 2";
}

References