Вниз  PHP
- 21.02.2011 / 15:41
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
http://sun3.org/archives/88
switch лучше
__________________
 Эль Презеденте
- 21.02.2011 / 15:54
web_demon
  Супервизор

web_demon 
Сейчас: Offline
aNNiMON (21.02.2011/15:10)
Koenig, Ну а я думаю так. Возьмем к примеру сравнение переменной с числом:1. if...then...else if...then...else...Сначала считывается переменная, потом значение. Затем сравнивается, если условие ложно
Фиг его знает. Вот ссыль с хабра по оптимизации в php
http://habrahabr.ru/blogs/php/112474/
Цитата:
if (...) {...} else if (...) {} быстрее, чем switch
Время зависит от количества веток.
if (...) {...} else if (...) {} быстрее, чем if (...) {...}; if (...) {};
Время зависит от количества веток и условий. Необходимо использовать else if везде, где это возможно, так как это самая быстрая «условная» конструкция.
А вообще много видел где доказывают и то и другое. Сейчас попытаюсь найти что-то более вразумительное чем просто констатация факта.
- 21.02.2011 / 16:11
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
Пост #52783

Там на числах от 0 до 1000000 тестриуется скорость)
__________________
 Эль Презеденте
- 21.02.2011 / 16:20
web_demon
  Супервизор

web_demon 
Сейчас: Offline
http://phpcoder.ws/2009-02/36-...rye-php-skripty.html
А тут уже говориться что свич быстрее :-D
switch() работает быстрее чем конструкции вида

if(...) {...} elseif (...) {...} elseif (...) ...
-----------------------------
В итоге можно предположить, что работают они одинаково, а все попытки измерить - погрешности. Но! При проходе по elseif пых когда находит конструкцию удовлетворяющую условию остальную часть он опускает. Свич держится до конца, и поэтому за счет того не просмотренного кода elseif выигрывает.
Вывод:
вот такого делать уже не надо
  1. if($id = 1){include("blocks/info.php"); exit();}
  2. elseif($id = 2){include("blocks/resyrs.php"); exit();}
  3. elseif($id = 3){include("blocks/nayka.php"); exit();}
  4. elseif($id = 4){include("blocks/teachers.php"); exit();}
  5. elseif($id = 5){include("blocks/ycheba.php"); exit();}
  6. elseif($id = 6){include("blocks/deti.php"); exit();}
  7. elseif($id = 7){include("blocks/pobedy.php"); exit();}
  8. elseif($id = 8){include("blocks/online.php"); exit();}
Тут естессно юзаем свич, тк, даже и если и будет выигрышь, то небольшой (Это при условии что свич не будет быстрее).
Ну а так, будет красивее юзать условия:
Открыть спойлер
Ибо, если все таки $act=='usadm', то остальной кусок кода интерпретатор опустит. И будет большая прибавка к скорости выполнения. Тем более в большом обьеме текста будет легче найти границы по скобке (Если в редакторе есть такая фишка)
- 21.02.2011 / 16:50
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
web_demon, А не легче в первом коде сделать так?
  1. $arr = array('info', 'resyrs', 'nayka', 'teachers',  'ycheba', 'deti', 'pobedy', 'online');
  2. include('blocks/' .$arr[$id]. '.php');
  3. exit();
  :gg: Намного меньше писать.
__________________
 let live
- 21.02.2011 / 17:32
web_demon
  Супервизор

web_demon 
Сейчас: Offline
aNNiMON (21.02.2011/16:50)
web_demon, А не легче в первом коде сделать так?$arr = array('info', 'resyrs', 'nayka', 'teachers', 'ycheba', 'deti', 'pobedy', 'online');include('blocks/' .$arr[$id]. '.php');exit(); :gg: Намного м
Я так и делаю, но это уже будет вложенность второй степени, а это уже перебор :-D
- 21.02.2011 / 19:07
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
aNNiMON (21.02.2011/16:50)
web_demon, А не легче в первом коде сделать так?$arr = array('info', 'resyrs', 'nayka', 'teachers', 'ycheba', 'deti', 'pobedy', 'online');include('blocks/' .$arr[$id]. '.php');exit(); :gg: Намного м
Этот код видел в сети , http://govnokod.ru/ тут помоему. Чисто пример я так понимаю :hack:
__________________
 Магистр Мёда
- 21.02.2011 / 19:37
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Koenig, который? Тот что Витя написал?
- 21.02.2011 / 19:45
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
web_demon, Который ты для примера написал, щас даже его посмотрю, у него куча + :-D
__________________
 Магистр Мёда
- 21.02.2011 / 20:04
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
web_demon, нашел другой .hack. http://govnokod.ru/5443
__________________
 Магистр Мёда
Наверх  Всего сообщений: 1350
Фильтровать сообщения
Поиск по теме
Файлы топика (36)