Оператор switch..case не поддерживает строгое сравнение. Тем не менее, существует трюк, позволяющий обойти это ограничение.

<?php
switch (true) {
    case $a === 1:
        echo "a равно 1";
        break;

    case $a === 2:
        echo "a равно 2";
        break;

    case $a === 3:
        echo "a равно 3";
        break;
}

Кроме того, идею можно развить дальше и использовать более разнообразные условия внутри case:

<?php
switch (true) {
    case $a === $b:
        echo "a равно 1";
        break;

    case $c === false:
        echo "a равно 2";
        break;

    case someLogic() === true:
        echo "некая логика";
        break;

    case $var1 && $var2 || $var3:
        echo "сложное условие";
        break;
}

От a-pro

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *