В этой статье мы изучим некоторые существующие в языке PHP операторы, которые составляют "скелет програмы". Операторы условия и циклы позволяют решить множество задач.
Операторы условияОператоры условия позволяют писать код, который будет выполняться в соответствии с какими то условиями. В языке PHP существует две таких конструкции. Первая из них :
позволяет проверить несколько выражений и выполнить код в зависимости от значения этих выражений. Если же надо сверить одно выражение с несколькими значениями, то PHP позволяет использовать конструкцию
switch....case для этой цели.
Оператор ifОператор
if - является одной из важнейших возможностей языков программирования. он позволяет выполнять конкретные строки кода в соответствии с указаным условием. Синтаксис оператора
if :
Если в блоке "....код..." присутствует более одной строки кода, тогда код следует обрамлять открывающей и закрывающей скобками, если же строка одна, то не обязательны фигурные скобки.
if (условие)
{
....код...;
....код...;
....код...;
}
Пример :
// Этот код выведет строку Россия, если значение переменной $country будет "ru".
if ($country == "ru")
echo("Россия.");
// Этот код выведет : "Россия. Столица - Москва", если значение переменной $country будет "ru".
if ($country == "ru")
{
echo("Россия.
");
echo("Столица - Москва");
}
В операторе
if, проверяемое условие должно иметь значение логического типа(
boolean):
true или
false. Любое невыполняющееся условие, имеет значение
false. Например, все представленые ниже выражения будут иметь значение
false:
if (5<4) echo ("Это не будет выведено на экран");
if (false) echo
("Это не будет выведено на экран");
//false - PHP константа
if ("0") echo ("Это не будет выведено на экран");
//При обработке этой строки, "0" станет 0,т.е. false
if ($g) echo("Это не будет выведено на экран");
//Только если переменной $g не было присвоено значение
true - эквивалентно любому выражению, не равному нулю, главное чтобы условие выполнялось. Например, все представленые ниже выражения получают значение
true :
if ("false") echo
("Это будет выведено на экран");
// false сдесь уже не константа, а строка
if ("00") echo
("Это будет выведено на экран");
// строка из двух нулей не будет конвертирована в
//целочисленный тип
if (0 == 0) echo ("Это будет выведено на экран");
// ноль равен нулю, условие выполняется
Условие можно усложнять, объединяя несколько условий логическими операторами.
if (((45) && (32)) xor (5 == 5))
echo ("Это не будет выведено на экран");
// верны оба условия, объединённые оператором исключения xor,
// поэтому всё выражение неверно (false)
Невыполняющиеся условияЕсли проверяемое условие возвращает
false, PHP разрешает указать другой блок кода, который будет выполнятся при помощи
else. Например :
if ($k < 0)
{
echo
("Отрицательное число");
}
else
{
echo
("Положительное число");
}
Первое условие проверяет, является ли число $k меньшим чем ноль. Если да, выводим на экран "Отрицательное число". Если же нет, выводим на экран "Положительное число". В PHP существует оператор
elseif, позволяющий проверять больше двух условий. Например :
if ($k < 0)
{
echo
("Отрицательное число");
}
elseif ($k == 0)
{
echo
("Ноль");
}
else
{
echo
("Положительное число");
}
Представленая выше конструкция сначала проверяет является ли значение переменной меньше нуля. Если да, выводим на экран что это отрицательное число. Если первое условие не удовлетворяется, проверяем равно ли значение переменной нулю. Если да, то выводим на экран что число равно нулю. Если же не выполняется ни одно из предыдущих условий, то выводим на экран что число является положительным.
Оператор switchНапример у нас есть переменная $country, в которой имеется сокращённое название страны и мы хотим вывести её полное название в зависимости от значения переменной $country. Если выполнить это при помощи конструкции
if...elseif....else, то выглядело бы это так :
if ($country== "ca")
{
echo
("Канада");
}
elseif ($country == "cr")
{
echo
("Коста Рика");
}
elseif ($country == "de")
{
echo
("Германия");
}
elseif ($country == "uk")
{
echo
("Великобритания");
}
else
{
echo("США");
}
В этом примере мы каждый раз сверяем значение переменной $country с конкретным значением и в зависимости от этого выводим полное название страны. Это можно сделать гораздо проще, используя конструкцию
switch...case... . Оператор
switch используется тогда, когда надо значение одноц переменной сравнить с несколькими значениями. Например :
switch($country)
{
case "ca" :
echo
("Канада");
break;
case "cr" :
echo
("Коста Рика");
break;
case "de" :
echo
("Германия");
break;
case "uk":
echo
("Великобритания");
break;
default:
echo
("США");
break;
}
Оператор
switch берёт значение переменной $country и сравнивает его со значением в
case. Когда находится совпадающее значение, выполняется код данного case пока не встретится оператор
break. Если не находится ни одного совпадения, выполняется код в блоке
default.
Оператор break позволяет остановить выполнение кода после case. Если значение $country равно "cr", тогда выводим "Коста Рика" и оператор break останавливает дальнейшую проверку условий. Если бы не было оператора break, проверка осуществлялась бы далее и на экран были бы выведены все остальные названия стран. Это может быть полезным, но также и нет. В нашем случае оператор break необходим. Мы можем объединить несколько операторов case, и если совпадёт значение хотябы одного из них, то выполнится последующий код. Например :
switch($country)
{
case "ca" :
case "cr" :
case "us" :
echo
("Северная Америка");
break;
case "de" :
case "uk" :
echo
("Европа");
break;
}
Если значение переменной $country равно ca, cr или us, на экран будет выведено "Северная Америка", если de или uk, на экран будет выведено "Европа".