Переключатель switch является наиболее удобным средством для организации
мультиветвления. Синтаксис переключателя таков:
switch(expression) // переключающее выражение{casevalue1: // константное выражение 1statements; // блок операторов
break;
casevalue2: // константное выражение 2statements;
break;
default:
statements;
}
Управляющая структура switch передает управление тому из помеченных case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Если значение переключающего выражения не совпадает ни с одним из константных выражений, то выполняется переход к оператору, помеченному меткой default. В каждом переключателе может быть не более одной метки default, однако она может отсутствовать вообще. Приведем пример программы с переключателем. В этой программе выводятся названия нечетных целых десятичных цифр от 1 до 9 не меньше заданной, в зависимости от числа, указанного в форме test.html. Форма test.html не отличается от той, что мы уже использовали:
<?switch($number)
{case 1:
echo ("one ");
case 2: case 3:
echo ("free");
case 4: case 5:
echo ("five");
case 6: case 7:
echo ("seven");
case 8: case 9:
echo ("nine");
break;
default:
echo ("This isn't number or number is > 9 or < 1");
}?>
Результат выполнения скрипта:
Форма запроса
Результат выполнения скрипта
Так же, как и в случае условного оператора для переключателей допустимы любые степени вложенности, однако злоупотреблять этим без особой на то необходимости также не следует.
Кроме уже сказанного о переключателе, приведенная программа демонстрирует действие оператора break, с помощью которого происходит выход из переключателя. Если поместить операторы break после вывода каждой из цифр, то в окне браузера мы увидим название только одной нечетной цифры.
Как видим, после конструкции switch приведен составной оператор, однако это совершенно не обязательно – после switch может находиться любой оператор, помеченный служебным словом case.
Напомним, что составной оператор, это заключенная в фигурные скобки последовательность операторов.
Заметим также, что в PHP в качестве меток case могут использоваться не только литералы, но и сами метки могут быть переменными. В качестве меток case в PHP не могут выступать только массивы и объекты.
«Если мы смогли здесь, — говорит Дин Нельсон, топ-менеджер eBay, ответственный за постройку дата-центра в Аризонской пустыне, — то сможем где угодно». Действительно, строить дата-центр, который нужно хорошо охлаждать, в одном из самых жарких мест страны было рискованной идеей. Обычно серверы нормально функционируют при температуре от 18 до 26 градусов выше нуля по Цельсию, но инженерам eBay удалось сделать так, что дата-центр может работать даже при +46. Внутри дата-центра настолько жарко, что для охлаждения можно использовать воду, температура которой достигает 28 градусов, и все равно она будет охлаждать оборудование. Но самая инновационная разработка, примененная на этом объекте, — контейнеры, напоминающие грузовые, в которые помещают оборудование. Энергоэффективность такого контейнера достигает 95%, а это значит, что практически вся энергия, направленная в него с электростанции, тратится на поддержание функционирования сервера, а не на охлаждение.