if($a<0)
{
echo $a * $b;
}
elseif($a==0)
{
echo $a + $b;
}
elseif($a==5)
{
echo $a - $b;
}
else
{
echo $a / $b;
}
Можно добавить множество блоков elseif. И если ни одно из условий в if или elseif не выполняется, тогда срабатывает блок else.
Конструкция switch..case
Конструкция switch..case является альтернативой использованию конструкции if..elseif..else. Например:
$a = 1;
if($a==1) echo "сложение"; elseif($a==2) echo "вычитание"; elseif($a==3) echo "умножение"; elseif($a==4) echo "деление";
Будет эквивалентно:
$a = 1; switch($a)
{
case 1:
echo "сложение"; break;
case 2:
echo "вычитание"; break;
case 3:
echo "умножение"; break;
case 4:
echo "деление"; break;
}
80
После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.
В конце блока сase ставится оператор break, чтобы избежать выполнения других блоков.
Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default:
$a = 1; switch($a)
{
case 1:
echo "сложение"; break;
case 2:
echo "вычитание"; break;
default:
echo "действие по умолчанию"; break;
}
Тернарная операция Тернарная операция состоит из трех операндов и имеет следующее
определение: [первый операнд - условие] ? [второй операнд] : [третий операнд]. В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true, то возвращается второй операнд; если условие равно false, то третий. Например:
$a = 1; $b = 2;
$z = $a < $b ? $a + $b : $a - $b; echo $z;
Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b. Иначе значение $z будет равняться $a - $b
1.7.8. Циклы
Для совершения повторяемых действий в PHP, как и в других языках программирования, используются циклы. В PHP имеются следующие виды циклов:
for
81
while
do..while
Цикл for
Цикл for имеет следующее формальное определение:
for ([инициализация счетчика]; [условие]; [изменение счетчика])
{
// действия
}
Рассмотрим стандартный цикл for:
<?php
for ($i = 1; $i < 10; $i++)
{
echo "Квадрат числа $i равен " . $i * $i . "<br/>";
}
?>
Первая часть объявления цикла - $i = 1 - создает и инициализирует счетчик - переменную $i. И перед выполнением цикла его значение будет равно 1. По сути это то же самое, что и объявление переменной.
Вторая часть - условие, при котором будет выполняться цикл. В данном случае цикл будет выполняться, пока $i не достигнет 10.
Третья часть - приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: $i--.
В итоге блок цикла сработает 9 раз, пока значение $i не станет равным 10. И каждый раз это значение будет увеличиваться на 1. Каждое отдельное повторение цикла называется итерацией. Таким образом, в данном случае произойдет 9 итераций.
Цикл while
Цикл while проверяет истинность некоторого условия, и если условие истинно, то выполняются блок выражений цикла:
<?php $counter = 1;
while($counter<10)
{
echo $counter * $counter . "<br />"; $counter++;
}
?>
Если в блоке while всего одна инструкция, то фигурные скобки блока можно опустить:
<?php
82
$counter = 0; while(++$counter<10)
echo $counter * $counter . "<br />"; ?>
Цикл do..while
Цикл do..while похож на цикл while, только теперь выполняется блок цикла, и только потом выполняется проверка условия. То есть даже если условие ложно, то блок цикла выполнится как минимум один раз:
<?php $counter = 1; do
{
echo $counter * $counter . "<br />"; $counter++;
}
while($counter<10) ?>
Операторы continue и break
Иногда возникает ситуация, когда требуется выйти из цикла, не дожидаясь его завершения. В этом случае мы можем воспользоваться оператором break:
<?php
for ($i = 1; $i < 10; $i++)
{
$result = $i * $i; if($result>80)
{
break;
}
echo "Квадрат числа $i равен $result <br/>";
}
?>
И если вдруг результат операции окажется больше 80, то происходит выход из цикла.
Для управления циклами также применяется оператор continue. Он осуществляет переход к следующей итерации цикла:
<?php
for ($i = 1; $i < 10; $i++)
{
if($i==5)
{
83
continue;
}
echo "Квадрат числа $i равен " . $i * $i . "<br/>";
}
?>
При выполнении программы, когда значение $i станет равным 5, произойдет переход к следующей итерации, а все остальные выражения, которые следуют после оператора continue, выполняться не будут.
1.7.9. Функции
Функции представляют собой набор инструкций, выполняющих определенное действие.
Синтаксис определения функции:
function имя_функции([параметр [, ...]])
{
// Инструкции
}
Определение функции начинается с ключевого слова function, за которым следует имя функции. Имя функции должно начинаться с алфавитного символа или подчеркивания, за которыми может следовать любое количество алфавитно-цифровых символов или символов подчеркивания.
После имени функции в скобках идет перечисление параметров. Даже если параметров у функции нет, то просто идут пустые скобки. Затем в фигурных скобках идет тело функции, содержащее набор инструкций.
Определим простейшую функцию:
function display()
{
echo "вызов функции display()";
}
Данная функция не имеет параметров и все, что она делает - это вывод на страницу некоторого сообщения.
Чтобы функция сработала, ее надо вызвать. Теперь вызовем функцию:
<?php
display();
function display()
84