Что лучше: case или elseif?

1. Василий (24.10.2011 / 00:12)
Посоветуйте.

2. 3DwEp (24.10.2011 / 00:19)
Моё мнение case лучше smile

3. Владислав (24.10.2011 / 00:20)
switch удобнее чем elseif

4. Саня (24.10.2011 / 00:48)
тут дело в удобстве. а так экономия на спичках

5. ramzes (24.10.2011 / 01:20)
Уже был такой холливарчик =) сошлись на том что без разницыsmile

6. KOZZ (24.10.2011 / 01:36)
switch-case(1) это вроде как обёртка для if-elseif(2).
1 больше подходит когда условий больше 2,особенно если юзать альтернативный синтаксис с endswitch.такие случаи часто встречаются,например,в админках. Если там использовать 2 связку,то код будет смотреться не так красиво и методично

7. Wapuns (24.10.2011 / 06:01)
я CASE юзаю) Норм)

8. ICE (24.10.2011 / 08:12)
Switch если много условий.А так обычный if elseif.

9. Лёха (24.10.2011 / 08:17)
тут выбор исходя из ситуации, где-то удобнее switch, а где-то elseif...

10. Кирилл (24.10.2011 / 09:03)
Все зависит от поставленных задач. switch удобнее расширять и изменять, код более читаемый.

11. Антон (24.10.2011 / 09:11)
Case удобнее имхо..

12. Валерий (24.10.2011 / 11:47)
elseif использую.. не припомню, чтоб у меня больше 4-5 таких условий в скрипте было..

13. XoPyC (24.10.2011 / 11:51)
case получше будетъ)

14. Василий (24.10.2011 / 12:04)
Ну у меня около 10-30 условий. Как скрипт будет быстрее работать? Или без разницы?

15. Тимофей (24.10.2011 / 12:08)
я думаю case удобнее klass

16. Виталик (24.10.2011 / 12:10)
нет разница есть! Если так много условий то лучше через свич кейс скрипт будет работать быстрее!

17. Саня (24.10.2011 / 12:24)
16. sister, доки в студию.

18. KOZZ (24.10.2011 / 12:25)
16,фэйспалм

19. Виталик (24.10.2011 / 13:26)
17. sanzstez, но подумай сам логичиски на пример есть 30 условий и если все 30 условий проверять через иф елсе приставь себе как будет думать интепритатор пхп! он начинает выполнять действия: 1иф 2иф 3иф... И так пока не будет истена тоесть по не дойдет до того ифа каторый был задан в запросе! И теперь подумай сколька интепретатуру приходеца думать а в свич все проще он проста берет то значения что было задано в запросе и начинает искать то значания а проще сказать ищет истену! И можна сказать что инпретатуру при работе с свич кейс приходеца выполннять менчше действий чем при работе с иф елсе! Ну если не очень понято то извените я ща с тела и що и на роботе не очень удобна обиснять! Кстати извеняюсь за свой русский!

20. Димон (29.10.2011 / 14:17)
полностью согласен с 19.
только насколько я знаю, switch не перебирает поэлементно, а сразу переходит к нужному значению.
Йа сцылочко, жмакни меня

21. Саня (29.10.2011 / 15:02)
Ну тогда тем более нужно думать где применять каждый из них, соответственно нужной вам задаче. А не как автор пришел и хз что хочет.
Это как в С что лучше писать + для сложения или использовать сразу побитовый сдвиг . В итоге результат тот же, а нихрена непонятно smile

22. ramzes (29.10.2011 / 17:34)
Это все из разряда echo vs print
Экономия на спичках
Без разницы.

23. iNeeXT (29.10.2011 / 17:41)
кас smile

24. Gate (18.11.2011 / 23:12)
switch, case

25. Владислав (21.11.2011 / 00:28)
в зависимости от задачи...если сложные условия сравнения, естественно if и т.д. ибо switch с этим не справится, если не сложные условия и несколько вариантов действий, то без разници что использовать это большой роли в скорости выполнения сценария не сыграет, главнее тут скорее читабельность кода, а если довольно таки много вариантов действий то по мне лучше switch

26. ensteyn-asen (19.12.2011 / 03:01)
редко switch
почти всегда if
иногда тернарный оператор

27. Дмитрий (19.12.2011 / 03:38)
Таки switch быстрее работает
<?
$a = microtime(true);
if (1 > 2) echo 1;
elseif (1 < 2) echo 2;
else echo 3;
printf("\n%0.6f", microtime(true) - $a);

echo "\n\n";

$a = microtime(true);
switch(1 > 2) {
case 1:
echo 1;
break;
case 2:
echo 2;
break;
default:
echo 3;
break;
}
printf("\n%0.6f", microtime(true) - $a);


28. yeshkin (19.12.2011 / 17:33)
26, +1. switch только при условии трехкратной проверки одной переменной, иначе - if, или же их комбинации при потребности. Не тема для холивара, просто прагматика

29. halsoft (19.12.2011 / 21:00)
Зависит от контекста - где-то лучше применять elseif и это выглядит шикарно, а где-то switch - в больших диапазонах значений его применять, всё равно, что поэзию писать smile

30. An0nimous (19.12.2011 / 21:07)
холливар объявляется открытым! E

31. halsoft (19.12.2011 / 21:18)
Вообще, при написании кода нужно держаться следующего принципа: старайся писать красиво, но не в ущерб производительности.

32. Артур (20.12.2011 / 03:06)
зависит от задачи. если надо проверять 1 переменную, то читабельнее как-то switch. иначе elseif. например
<?php
if($a > $b && $c < $d && $b != $c){
}elseif($b == $c){
}else{
}
а в switch как это?)
<?php
switch(true){
case($a > $b && $c < $d && $b != $c):
break;
case($b == $c):
break;
default:
break;
}


33. Удаленный (17.01.2012 / 02:44)
elseif на мой взляд более стандартный что-ли... Ну как-то привык к нему)))

34. Zдешний (17.01.2012 / 04:27)
switch лучшеsmile

35. ★☆ ИгRok™ ☆★ (17.01.2012 / 04:52)
я тоже когда приходиться пользуюсь switсh. Как-то удобнее,по крайней мере для меня. Да и привычнееsmile

36. Apollon76 (17.01.2012 / 05:37)
Если тебе нужно вписать небольшое условие или несколько действий-elseif,для большого кода лучше case.

37. Олечка (17.01.2012 / 09:48)
все зависит от задачи и привычки использования для меня проще использовать elseif но бывают моменты что без case не обойтись

38. Роман (17.01.2012 / 10:17)
Не стал читать всю темку (просто в лом smile ). Что тебе удобнее, то и используй, т.к. логика тут одинакова что ИФ ЭЛСЕ выполняет последовательное сравнение до того пока не будет TRUE (или ELSE) потом выполняет ветку до знака }, что СВИТЧ выполняет последовательное сравнение до того пока не будет TRUE (или DEFAULT) потом выполняет ветку до BREAK.

Просто если значений много или в теле ветки много кода лучше использовать СВИТЧ (имхо)

39. Удаленный (17.01.2012 / 10:27)
Народ а может оффнуть уже тему а?? А то думаю уже и так понятно что человек выберет switch

40. Удаленный (17.01.2012 / 15:59)
Разницы никакой, скрипты всегда медленные blyat потому что логически неправильные, ***код проще говоря))) else switch кому что удобнее

41. ramzes (17.01.2012 / 16:18)
я вот посмотрел на свой код, подумал почему в метре текста всего два свитча..
оказалось что у меня просто нет в нем потребностей, больше 2х вариантов условий просто не попадается))
задумался..

42. KOZZ (18.01.2012 / 15:35)
41. ramzes, со свитчами читабельнее, производительность страдает совершенно незначительно. стоит ли менять?

43. ramzes (18.01.2012 / 19:25)
42. eGo Где Мой Кэш7, мне наоборот не читабельно через свитч.
А менять в любом случае не стоит мне кажется, не та разница что бы выгадывать на ней

44. mix (05.02.2012 / 04:43)
wap-css (24 Октября 2011 / 12:04)
Ну у меня около 10-30 условий. Как скрипт будет быстрее работать? Или без разницы?
юзай switch

URL: https://visavi.net/topics/25922