PHP занятие 3. Условные операторы

На уроке будут рассмотрены условные операторы php: оператор if и оператор переключения switch

Условные операторы php

Условные операторы php представлены тремя основными конструкциями:

  • оператор условия if,
  • оператор переключения switch
  • и тернарный оператор.

Рассмотрим подробнее каждый из них.

PHP оператор if

короткий вариант условного оператора php
Рис 3.1. Условный оператор IF, укороченный вариант

Синтаксис условного оператора IF ELSE php
Рис. 3.2. Синтаксис условного оператора IF ELSE

Полный синтаксис условного оператора IF elseif php
Рис. 3.3. Полный синтаксис условного оператора IF elseif

Подытожим:

Полный синтаксис:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (условие)
 {
	 // если условие истинно
	operator1; 
	operator2; 
 }
 elseif(условие)
 {
	 operator1;
	 ...
 }
 else 
 {
	// если условие ложно
	operator1; 
	operator2; 
 }
  • Укороченный синтаксис может не содержать части конструкции с else и не содержать дополнительного условия elseif
  • Вместо служебного слова elseif можно писать else if (отдельно)
  • В одной конструкции if может быть несколько elseif. Будет выполнено первое встретившееся выражение elseif равное TRUE.
  • В случае наличия альтернативного условия elseif конструкция else должна идти последней в синтаксисе.

В условном операторе может использоваться двоеточие : вместо фигурных скобок. В таком случае заканчивается оператор служебным словом endif

If и Endif в php
Рис. 3.4. Условный оператор If и Endif в php

Пример:

1
2
3
4
5
6
7
if($x > $y):
    echo $x." больше, чем ".$y;
elseif($x == $y): // при использовании ":" нельзя писать раздельно else if 
    echo $x." равно ".$y;
else:
    echo $x." не > и не = ".$y;
endif;
Важно: При использовании в конструкции двоеточия вместо фигурных скобок elseif нельзя писать в два слова!

Логические операции в условии

В условии if в скобках могут присутствовать следующие операции:

== равенство
!= неравенство
> больше
< меньше
>= больше или равно
<= меньше или равно
Пример: проверить значение числовой переменной: если оно меньше либо равно 10, — выдавать сообщение «число меньше или равно 10», в обратном случае выдавать сообщение «число больше 10»

Решение:

1
2
3
4
5
6
7
$number=15;
 if ($number <=10) {
	 echo "число меньше или равно 10";
 }
 else {
	 echo "число больше 10";
 }

Блоки php кода можно разрывать, рассмотрим пример:

Пример: Выводить на экран html-код «а равно 4», если переменная $a действительно равна 4

1 Решение:

1
2
3
4
<?php
if ($a == 4):
    echo "a равно 4";
?>

2 Решение:

1
2
3
<?php if ($a == 4): ?>
A равно 4
<?php endif; ?>
Задание php 3_1: Выводить перевод цветов с английского языка на русский, проверяя значение переменной (в которой присвоен цвет: $a='blue')
Задание php 3_2: Найти максимальное из трех чисел

Операции сравнения и правило лжи

В конструкции if в скобках должно находиться логическое выражение или переменная, которые рассматриваются с точки зрения алгебры логики, возвращающая значения либо true либо false

Т.е. в качестве условия может выступать единственная переменная. Рассмотрим пример:

1
2
3
4
$a=1;
 if ($a) {
	 echo $a;
 }

В примере транслятор языка php будет рассматривать переменную в скобках на правило лжи:

Правило ЛЖИ или что считается ложным:

  • логическое False
  • целый ноль (0)
  • действительный ноль (0.0)
  • пустая строка и строка «0»
  • массив без элементов
  • объект без переменных
  • специальный тип NULL

Таким образом, в рассмотренном примере переменная $a равна единице, соответственно условие будет истинным и оператор echo $a; выведет на экран значение переменной.

Задание php 3_3: дана переменная а со строковым значением. Если а равна имени, то выводить «Привет, имя!», если а равна пустому значению, то выводить «Привет, незнакомец!»

Логические конструкции И ИЛИ и НЕ в условном операторе

  1. Иногда необходимо предусмотреть выполнение одновременно нескольких условий. Тогда условия соединяются логическим оператором И&&:
  2. 1
    2
    3
    4
    
    $a=1;
    if ($a>0 && $a<5) {
    	echo "a > 0 и a < 5";
    }
  3. При необходимости выполнения одного из нескольких условий применяется логический оператор ИЛИ||:
  4. 1
    2
    3
    4
    
    $a=1;
    if ($a>0 || $a>1) {
    	echo "a > 0 или a > 1";
    }
  5. Для указания ложности условия используется логический оператор НЕ!:
  6. 1
    2
    3
    4
    
    $a=1;
    if (!($a<0)) {
    	echo "a не < 0";
    }

Оператор Switch PHP

Оператор switch или «переключатель» заменяет несколько подряд идущих конструкций if. При этом он сравнивает одну переменную с множеством значений. Таким образом, это наиболее удобное средство для организации мультиветвления.

Синтаксис:

1
2
3
4
5
6
7
8
9
10
switch($переменная){
case "значение1": оператор1;
    break;
case "значение2": оператор2;
    break;
case "значение3": оператор3;
    break;	
[default: оператор4;
    break;]
}
  • Оператор может проверять как строковые значения (тогда они указываются в кавычках), так и числовые (без кавычек).
  • Оператор break в конструкции обязателен. Он осуществляет выход из конструкции при истинном условии и выполнении соответствующего условию оператора. Без break будут выполняться операторы всех case независимо от их истинности.
условный оператор switch php
Рис. 3.5. Условный оператор Switch
Пример: задан массив с полными мужскими именами. Проверять первый элемент массива и в зависимости от имени, выдавать приветствие с коротким именем.

Решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$names=array("Иван","Петр","Семен");
switch($names[0]){
case "Петр": 
	echo "Привет, Петя!";
	break;
case "Иван": 
	echo "Привет, Ваня!";
        break;
case "Семен": 
	echo "Привет, Ваня!";
        break;	
default: 
	echo "Привет, $names[0]!";
        break;
}

Задание php 3_4:

  • Создайте переменную $day и присвойте ей произвольное числовое значение
  • С помощью конструкции switch выведите фразу «Это рабочий день», если значение переменной $day попадает в диапазон чисел от 1 до 5 (включительно)
  • Выведите фразу «Это выходной день», если значение переменной $day равно числам 6 или 7
  • Выведите фразу «Неизвестный день», если значение переменной $day не попадает в диапазон чисел от 1 до 7(включительно)

Дополните код:

1
2
3
4
5
6
7
8
9
10
11
12
...
switch(...){
case 1: 
case 2:
...
	echo "Это рабочий день";
	break;
case 6:
...
default:
... 	
}

Тернарный оператор PHP

Тернарный оператор, т.е. с тремя операндами, имеет достаточно простой синтаксис, в котором слева от знака ? записывается условие, а справа — два оператора разделенные знаком :, слева от знака выполняется оператор при истинности условия, а справа от знака : выполняется оператор при ложном условии.

условие ? оператор1 : оператор2;
Пример: если значение переменной speed меньше 60, то выводить сообщение «Показания скорости в норме», иначе выводить сообщение «Скорость превышена!»
1
2
3
4
<?php
$speed = 45;
echo ($speed < 60) ? "Показания скорости в норме" : "Скорость превышена!"; 
?>
Задание php 3_5: выполнить предыдущее задание (php 3_4), используя тернарный оператор и логические операторы

2 комментария для “PHP занятие 3. Условные операторы”

Обсуждение закрыто.