Урок 9

Урок 9. Условные операторы, конструкция выбора, команды вывода данных

На данном уроке мы рассмотрим:

  1. Тернарный оператор

  2. Конструкция if

  3. Конструкция else

  4. Конструкция выбора

  5. Команды вывода данных

    • echo

    • print

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

Использование трехкомпонентного оператора ? позволяет избежать многословности инструкций if и else. Необычность этого оператора заключается в том, что он использует не два, как большинство других операторов, а три операнда. Синтаксис оператора выглядит следующим образом:

условие ? выражение1 : выражение2


Если условие - TRUE, то выполняется выражение 1, если FALSE то выражение 2.

Рассмотрим пример. Если х>10, то вывести сообщение "х больше чем 10", иначе вывести сообщение "х меньше 10".

$x = 5;

echo ($x > 10) ? "х больше 10" : "х меньше 10";?>

Ответ будет выглядеть следующим образом:


Конструкция if

Конструкция if является одной из наиболее важных во многих языках программирования, в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Структура if реализована в PHP по аналогии с языком C:

if (выражение)

инструкция;

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет.

Приведем пример:

if ($х > $у) echo "х больше, чем у";

Если нужно выполнить несколько операторов, то их нужно поместить в фигурные скобки {...}

Пример:

if ($a > $b) {

echo "a больше b";

$b = $a;

}

Конструкция else

Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие, но и в случае, если условие конструкции if не выполнено. Такая конструкция будет называться конструкцией if-else. Синтаксис конструкции if-else:

if (логическое_выражение)

инструкция_1;

else

инструкция_2;

Действие конструкции if-else следующее: если логическое выражение true, то выполняется инструкция 1. Иначе, если логическое выражение false, то выполняется инструкция 2. Если инструкция 1 или инструкция 2 должны состоять из нескольких операторов, то они заключаются в фигурные скобки.

Например:

if ($a > $b) {

echo "a больше, чем b";

} else {

echo "a НЕ больше, чем b";

}


Конструкция выбора

Конструкции switch-case

Оператор switch подобен серии операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений, и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

switch(выражение) {

case значение1: команды1; [break;]

case значение2: команды2; [break;]

. . .

case значениеN: командыN; [break;]

[default: команды_по_умолчанию; [break]]

}

Принцип работы конструкции switch-case такой:

  1. Вычисляется значение выражения;

  2. Просматривается набор значений. Пусть значение1 равно значению выражения, вычисленного на первом шаге. Если не указана конструкция (оператор) break, то будут выполнены команды i, i+1, i+2, ... , N. В противном случае (есть break) будет выполнена только команда с номером i.

  3. Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.

Рассмотрим пример:

$x=1;

switch ($x) {

case 0:

echo "x=0

";

break;

case 1:

echo "x=1

";

break;

case 2:

echo "x=2

";

break;

}

Данный код выведет х=1:

Команды вывода данных

Для того чтобы создавать динамические сайты с помощью PHP вы должны научиться отправлять данные для вывода в веб-браузере. В PHP имеется для этих целей несколько языковых конструкций. Наиболее популярные в использовании среди них это:

  • echo

  • print

echo

echo — Выводит одну или более строк.

echo ( string $arg1 [, string $... ] )

На самом деле echo - это не функция, а конструкция языка, поэтому заключать аргументы в скобки необязательно. echo (в отличии от других языковых конструкций) не ведет себя как функция, поэтому не всегда может быть использована в контексте функции. Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.

Например,

echo "Привет, студент!";

print

print — Выводит строку.

print ( string $arg )

Выводит arg.

print не является "настоящей" функцией (это конструкция языка), поэтому заключать аргументы в скобки необязательно.

Вопросы и задания!

  1. Объявить переменные а и b. Если сумма этих двух переменных больше а, то вывести сообщение "Сумма больше, чем а", иначе вывести "Сумма меньше, чем а". Написать программу использую тернарный оператор и конструкцию else.

  2. Написать программу, которая выводит какой сегодня день недели. Используйте конструкцию выбора.

  3. Сравните длину имен и фамилий ваших соседей. Вывести их с помощью команды print.