Else оператор-2;
где условие – это любое логическое выражение (обязательно ставится в скобки).
В каждой ветке альтернативы может следовать только один оператор языка, причем перед else точка с запятой ставитсяобязательно.
Примеры:
1. определить значения переменной z после выполнения операторов:
$x = 1;
$z = 3;
if ($x – $z > 0) //в данном случае условие ложно, поэтому
$z --; //будетвыполняться ветвь else, и, значит,
else $z++; //z = 4
2. определить наибольшую из двух переменных $a и $b, присвоив ее значение переменной $с:
данет
Словесное описание алгоритма:
ЕСЛИ (a > b)
ТО c = a
ИНАЧЕ c = b;
Реализуем этот алгоритм на PHP:
if ($a > $b)
$c = $a;
else $c = $b;
3. решить эту же задачу сокращенной альтернативой:
а)двумя сокращенными альтернативами:
if ($a > $b)
$c = $a;
if ($b > $a)
$c = $b;
б)одной сокращенной альтернативой:
$c = $b;
if ($a > $b)
$c = $a;
Реализация альтернативы усложняется, если в каждой ее ветви имеется не по одному оператору, а по цепочке операторов. В этом случае цепочки заключаются в фигурные скобки:
sin c,если c < 2,5
a = cos c,если c ≥ 2,5
| c |,если c < 2,5
b =
1/c, если c ≥ 2,5
На PHP:
if ($c < 2.5) Внимание! Перед служебным словом
{ elseставится точка с запятой!
$a=sin($c);
$b=abs($c);
}
Else
{
$a=cos($c);
$b=1.0/$c;
}
Еще раз необходимо обратить внимание на то, что в PHP после закрывающей фигурной скобки точка с запятой не ставится, а перед ней – обязательно.
В каждой ветви условного оператора if могут в свою очередь стоять новые операторы if , что дает возможность использовать вложение операторов if до любого уровня:
Примеры:
1. определить наибольшую из трех переменных $x, $y,$z и присвоить ее значение переменной $s:
а) с использованием полной альтернативы:
ЕСЛИ (x > y) if ($x > $y)
ТО ЕСЛИ (x > z) if ($x > $z)
ТО s = x $s=$x;
ИНАЧЕ s = z else $s=$z;
ИНАЧЕ ЕСЛИ (y > z) else if ($y > $z)
ТО s = y $s=$y;
ИНАЧЕ s = z; else $s=$z;
б) с использованием усеченной альтернативы: вариант 1
s = z; $s = $z;
ЕСЛИ (x > y) if ($x > $y)
ТО ЕСЛИ (x > z) if ($x > $z)
ТО s = x; $s=$x;
ЕСЛИ (y > x) if ($y > $x)
ТО ЕСЛИ (y > z) if ($y > $z)
ТО s = y; $s=$y;
вариант 2 – с использованием операции конъюнкции
s = z; $s = $z;
ЕСЛИ (x > y) & (x > z) if (($x > $y) && ($x > $z))
ТО s = x; $s=$x;
ЕСЛИ (y > x) & (y > z) if (($y > $x) && ($y > $z))
ТО s = y; $s=$y;
2. по заданной дате (день, месяц, год) определить день недели, приходящийся на нее:
<?php
$day=19;
$month=9;
$year=1949;
$kl=0;
$c=0;
$y1=$year/100;
$y2=$year-$y1*100;
if (($y2==0) && ($y1%4==0))
$c=1;
if (($y2!=0) && ($y2%4)==0))
$c=1;
if (($c==1) && ($month==1) ||($month==2))
$kl=1;
if (($c==0) && ($month==1) || $month==2))
$kl=2;
$c=ceil(365.25*$y2) + ceil(30.56*$month) + $day + $kl;
$c %= 7;
$c += 3;
if ($c==1)
echo “<BR>Это понедельник<BR>”;
if ($c==2)
echo “<BR>Это вторник<BR>”;
if ($c==3)
echo“<BR>Это среда<BR>”;
if ($c==4)
echo “<BR>Это четверг<BR>”;
if ($c==5)
echo “<BR>Это пятница<BR>”;
if ($c==6)
echo “<BR>Это суббота<BR>”;
if ($c==7)
echo “<BR>Это воскресенье<BR>”;
?>
По принятому в PHP соглашению, ветвь else всегда относится к ближайшему предшествующему ему незанятому if:
if ($n > 0)
if ($m % $n > 2)
$m -= $n;
else $m += $n;
else $m %= $n;
В данном случае ветвь else $m += $n относится к if ($m % $n > 2), а ветвь else $m %= $n относится к if ($n > 0).
При переходе с Паскаля на PHP программисты часто допускают ошибки при формировании условия в операторе if, путая две операции:
= присваивания и
== сравнения:
if ($a==$b)
echo “<BR>Эти величины равны между собой<BR>”;
else echo “<BR>Эти величины не равны между собой<BR>”;
Это правильное сравнение значений двух переменных.
Перепишем это сравнение с ошибкой (интерпретатором не определяется):
if ($a = $b)
echo “<BR>Эти величины равны между собой<BR>”;
else echo “<BR>Эти величины не равны между собой<BR>”;
В этом случае сначала переменной $a будет присвоено значение переменной $b, а потом будет проверено, какое именно значение присвоено. Если это значение отлично от нуля (неложь), то выведется сообщение:
Дата добавления: 2015-04-19; просмотров: 1045;