Я проверяю это Тест сайта PHP для проверки switch statement
В.С. if else if statement
, И я вижу этот результат:
Есть ли разница между коммутатором и структурами if? Звоните 1’000x
*if and elseif (using ==)*
Общее время: 165 мкс*if, elseif and else (using ==)*
Общее время: 162 µsview код*if and elseif (using ===)*
Общее время: 128 µsview код*if, elseif and else (using ===)*
Общее время: 117 мкс код просмотра*switch / caseTotal*
время: 174 мкс*switch / case / default*
Общее время: 211 мкс код просмотраВ результате я вижу if else if
быстрее (+ **100 %** *if, elseif and else (using ===)* Total time: 117 µsview code
).
Этот тест верен и if, elseif and else (using ===)
лучше и быстрее, как заявление переключателя ?!
Получите ли вы точно такие же результаты, будет зависеть от того, какие условия вы оцениваете, ваше оборудование, настройки и другие факторы. Да да вообще if
/elseif
/else
со строгим сравнением (===
) превзойдет switch
, Причина в том, что switch
использует «свободное» (т.е. нечувствительное к типу) сравнение (==
), который медленнее, чем сравнение с учетом типа (===
).
Имейте в виду, что эти различия чрезвычайно малы и будут уменьшаться из-за неэффективности вашего алгоритма. Таким образом, вам следует настраиваться на подобные детали только после того, как вы убедитесь, что устранили другие серьезные узкие места.
Переключатель по умолчанию PHP не с точным соответствием.
Несколько примеров для переключатель точного соответствия.