Я знаю, что это может быть простым вопросом, но хотеть знать каждое мнение о об этом.
каково различие между переключателем и ЕСЛИ функция в PHP?? То, что я вижу, - то, где когда-либо "переключают" функциональное использование, "ЕСЛИ" функция также применяется там.. исправьте меня, если я неправ..
Или какая-либо производительность мудрое различие между два??
Или какая-либо разница в производительности между двумя ??
Забудьте о разнице в производительности на этом уровне - она может быть микроскопической, но вы почувствуете это только при выполнении сотен тысяч операций, если вообще. switch
- это конструкция для лучшей читаемости кода и удобства сопровождения:
switch ($value)
{
case 1: .... break;
case 2: .... break;
case 3: .... break;
case 4: .... break;
case 5: .... break;
default: .... break;
}
в основном гораздо более понятный и читаемый, чем
if ($value == 1) { .... }
elseif ($value == 2) { .... }
elseif ($value == 3) { .... }
elseif ($value == 4) { .... }
elseif ($value == 5) { .... }
else { .... }
Edit: На основе комментария Кучена, для полноты картины некоторые тесты (результаты будут разные, живая). Имейте в виду, что эти тесты выполняются 1000 раз . Разница для пары if
является совершенно незначительной .
Заключение (с phpbench.com) :
Использование переключателя / корпуса или if / elseif почти то же самое. Обратите внимание, что в тесте используется unsing === (точно равно), и он выполняется немного быстрее, чем при использовании == (равно).
Если у вас есть простые условия, например, если что-то приравнивается к чему-то другому, то переключатель является идеальным.
Например, вместо того, чтобы делать следующее:
if($bla == 1) {
} elseif($bla == 2) {
} elseif($bla == 3) {
} etc...
Лучше делать это так:
switch($bla) {
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
default:
...
break;
}
В качестве альтернативы, если у вас сложные условия, вы должны использовать if / else.
Я думаю, что это все лишь вопрос мнения - некоторые люди вообще не используют операторы switch и придерживаются if / else.
Нет, вы правы.
Между этими заявлениями нет большой разницы.
Вы можете использовать тот, который вам нравится.
Просто имейте в виду, что если вам приходится использовать более 3-4 последовательных условий - это означает, что у вас, скорее всего, есть конструктивные ошибки.
Обычно вы можете заменить такой оператор циклом или более понятным дизайном приложения.
Не забывайте, однако, что переключатель не обязательно работает как простой оператор if. Помня о том, что переключение не требует перерыва в конце каждого дела, и оставив этот перерыв, вы также можете «перейти» к следующему кейсу, что может позволить сделать некоторые интересные и в некоторой степени сложные «если».