Переключатель Switch

switch полезен в качестве замены нескольким if в том случае, если используется одна и та же переменная. Для того, чтобы было понятнее, покажу на примере. Предположим, у нас есть вот такой код:

<?php
if ($my_number == 0) {
	echo '$my_number равно нулю';
} elseif ($my_number == 1) {
	echo '$my_number равно одному';
} elseif ($my_number == 2) {
	echo '$my_number равно двум';
}
?>

А вот как он будет выглядеть с использованием switch:

<?php
switch ($my_number) {
	case 0:
		echo '$my_number равно нулю';
		break;
	case 1:
		echo '$my_number равно одному';
		break;
	case 2:
		echo '$my_number равно двум';
		break;
}
?>

В случае нахождения совпадения, функция не будет продолжать сравнивать значения — для этого и нужен break в конце.

Точно такой же пример, но теперь вместо числовых значений возьмём строковые:

<?php
switch ($my_car) {
	case 'Ford Mustang':
		echo 'Моя тачка - Ford Mustang';
		break;
	case 'Chevrolet Camaro':
		echo 'Я катаюсь на Camaro';
		break;
	case 'Lamborghini Gallardo':
		echo 'У меня в гараже новенький Gallardo';
		break;
}
?>

Можно объединить несколько значений переменных следующим образом:

<?php
switch ($my_cms) {
	case 'Wordpress':
		echo 'При создании сайтов я использую WordPress';
		break;
	case 'Joomla': // аналог if($a==1 || $a==2)
	case 'Drupal':
		echo 'Я предпочитаю другие, менее популярные CMS';
		break;
}
?>

В следующем примере используем альтернативный синтаксис, а также добавим действие по умолчанию, которое будет выполняться в том случае, если ни одно из значений не совпадет (аналог else).

<?php
switch ($my_cms) :
	case 'Wordpress':
		echo 'При создании сайтов я использую WordPress';
		break;
	case 'Joomla':
	case 'Drupal':
		echo 'Я предпочитаю другие, менее популярные CMS';
		break;
	default:
		echo 'Я делаю сайты на самописных движках';
endswitch;
?>

Также хочу отметить, что вместо двоеточия можно спокойно юзать точку с запятой (только поосторожнее с последним примером).

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

Смотрите также