Instrukcje warunkowe są podstawą każdego języka programowania.
Używa się jej do wykonania pewnej instrukcji (lub bloku
instrukcji), ale tylko w pewnych okolicznościach - zostanie
spełniony określony warunek (lub cały zestaw warunków).
Przykład 4.1. Składnia instrukcji warunkowej
<?php if(wyrażenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie warunek elseif(inne_wyrażenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie drugi warunek, a pierwszy nie else instrukcja wykonywana jeśli nie zostanie spełniony żaden z warunków ?>
|
Wyrażeniem warunkowym jest w zasadzie dowolne wyrażenie, ponieważ
za warunek uznawane jest wszystko co zwraca wartość, czyli
wszystkie zmienne, wyrażenia logiczne, funkcje itp. Za spełniony
warunek uznawana jest wartość większa od zera.
Przykład 4.2. Przykład instrukcji warunkowej
<?php $a = 2; $b = 5; $c = 1; if($a > $b) echo "$a jest większe od $b"; elseif ($b > $c) echo "$b jest większe od $c"; else echo "$c jest większe od $a i $b";
if($a) echo "Zmienna $a ma wartość większą od zera"; ?>
|
Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie
jedno, ale kilka poleceń, to te polecenia trzeba ująć w nawiasy
klamrowe. Bez tego warunkiem objęta by była tylko jedna instrukcja
po instrukcji if.
Instrukcje mogą być zagnieżdżane wewnątrz siebie.
Przykład 4.3. Zagnieżdżanie instrukcji warunkowych
<?php $a = 6; $b = 5; $c = 1;
if($a > $b){
echo "$a jest większe od $b";
if($a > $c) echo " i od $c"; // Powinien zostać wyświetlony napis "6 jest większe od 5 i od 1"
} ?>
|
Oczywiście możliwe jest korzystanie z warunków bardziej złożonych
niż pojedyńcze porównanie wielkości zmiennych - do łączenia
warunków niezbędne jest wykorzystanie operatorów logicznych
opisanych w poprzednim rozdziale. Operator logiczny OR (lub) ma
większy priorytet niż operator AND (i), więc aby sprawdzić jakiś
warunek gdzie konieczna jest inna kolejność, niezbędne jest użycie
nawiasów grupujących warunki. Na przykład chcemy aby jakaś
instrukcja była wykonana jeśli zmienna $a jest większa od $b lub
$c, i zmienna $d była równa $e. Jeśli chcielibyśmy zapisać to bez
żadnych nawiasów: $a >; $b || $a >; $c && $d
== $e to efekt byłby zupełnie inny od zamierzonego:
instrukcja była by wykonana jeśli $a było by większe od $b, lub
jeśli $a było by większe od $a i $d było by równe $e. Poprawna
konstrukcja to ($a >; $b || $a >; $c) && $d ==
$e.
Przykład 4.4. Grupowanie warunków
<?php $a = 6; $b = 5; $c = 7; $d = 6; $e = 6;
if(($a > $b || $a > $c)&& // Nawiasy klamrowe nie są potrzebne - to $d == $e ) // 2 linie ale jedna instrukcja echo 'Zmienna $a jest większa od $b a zmienna $d jest równa $e, '. 'więc ten tekst pokaże się.'; // Taka konstrukcja jest dozwolona ?>
|