Показать сообщение отдельно
Старый 26.12.2004, 05:11   #23  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано 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;