Цитата:
Изначально опубликовано mazzy
Не выдержал таки, вставлю и свои 5 копеек.
Задача switch - вовсе не повышение читабельности и не уменьшение нажатий на кнопки.
switch отличается от else if в том, что выражение в условии вычисляется ОДИН раз.
Разница в производительности проявляется, если в условии стоит не простая переменная, а сложное выражение.
Так, например, если в условии стоит какой-нибудь поиск в базе по нескольким таблицам, то switch будет вычислять это выражение один раз. А для else if придется создавать временную переменную.
Согласен. Действительно забыл про это.
Но:
1. switch( true ) этим достоинством не обладает.
2. случаи когда в switch стоит сложное выражение и для него уже не создано временной переменной достаточно редки, я даже не припомню таких случаев на своей памяти
В 99% случаев применения switch выглядит именно так:
PHP код:
switch ( имя_переменной )
{
case значение1:
... break;
case значение2:
....break;
// и очень-очень редко, хотя стоило бы всегда:
default:
...break;
}
А вот прямо сейчас вот посмотрел в мануал по языку и увидел тот случай, когда switch выглядит проще и легче читается:
PHP код:
switch (Number / 10)
{
case 10,12,14 : /* a */; break;
case 13,17,21,500 : /* b */; break;
default : /* c */; break;
}