8528 107189948 ин раз, а результат сравнивается с каждым оператором case. В операторе elseif условие вычисляется повторно. Если ваше условие сложнее, чем простое сравнение "и/или" в небольшом цикле, оператор switch может сработать быстрее.

Список операторов в case может также быть пустым, что просто передаёт управление в список операторов следующего case.

switch ($i) {
    case 0:
    case 1:
    case 2:
        print "i is less than 3 but not negative";
        break;
    case 3:
        print "i is 3";
}

Особый случай - default case (case по умолчанию). Этот case совпадёт со всем, с чем не совпали все предыдущие case, и должен быть самым последним case. Например:

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

Выражением case может быть любое выражение, которое вычисляется в простой тип, то есть целое число, число с плавающей точкой или строка. Массивы или объекты не могут использоваться здесь, если только они не разыменовываются в простой тип.

Альтернативный синтаксис структур управления поддерживается в switch. Дополнительно см. Альтернативный синтаксис структур управления.

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

Назад ОглавлениеВперёд
continueВверхdeclare
Hosted by uCoz