Какая форма более эффективна
Вот этот:
switch($var) { case 1: break; case 2: break; }
.. или этот:
if( $var === 1 ) { } elseif( $var === 2 ) { }
с точки зрения производительности?
Аспект производительности совершенно не имеет значения.
Как показывает PHPBench , даже с 1000 операций разница между ними составляет около 188 микросекунд, что составляет 188 миллионных долей секунды . PHP-код обычно имеет гораздо большие узкие места: единый вызов базы данных часто занимает десятки миллисекунд, что в десятки тысяч раз больше.
Используйте то, что вам нравится, и в зависимости от того, что лучше для читаемости вашего кода – для многих проверок, скорее всего, это switch
.
Производительность в таких микро-шкалах не имеет значения. Используйте тот, который более подходит в вашем контексте. Читаемость и ремонтопригодность гораздо важнее производительности.
Это не о производительности, а о требованиях!
Иногда вы хотите, чтобы что-то произошло в вашем состоянии if, иначе оно перейдет к другому.
Коммутатор может использоваться, если у вас есть много значений для сравнения