开关问题

sat*_*tya 2 php switch-statement

这是示例代码.

<?php
$a =2;
switch($a) {
    case 1:
    case 2:
    case 3:
        echo "Logic for error validations";

    case 1:
        echo "1. code to be executed";
        break;

    case 2:
        echo "2. code to be executed";
        break;

    case 3:
        echo "3. code to be executed";
        break;

    case 4:
        echo "4. code to be executed";
        break;

    case 5:
        echo "5. code to be executed";
        break;
}
?>
Run Code Online (Sandbox Code Playgroud)

对于$aas 的值,1,2,3我有相同的错误验证.对于$ a的每个值,更新逻辑再次不同.

为了实现上述逻辑,我使用了案例1:案例2:案例3:并没有故意使用BREAK.这样它就会继续执行.

但它导致o/p, 错误验证的逻辑1.要执行的代码.

现在预期的输出是,错误验证的逻辑2.要执行的代码.

请帮助我或建议更改以产生预期的输出.我可以使用IF并基于$ a的值,更改代码.但我正在尝试使用switch的帮助,可以扩展为$ a的范围值.

Ash*_*nko 5

您不能拥有重复的案例值.你必须做类似下面的事情.

<?php
$a =2;
switch($a) {
    case 1:
        error();
        echo "1. code to be executed";
        break;
    case 2:
        error();
        echo "2. code to be executed";
        break;
    case 3:
        error();
        echo "3. code to be executed";
        break;
    case 4:
        echo "4. code to be executed";
        break;
    case 5:
        echo "5. code to be executed";
        break;
}

function error()
{
    echo "Logic for error validations";
}


?>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.