Jesteś tutaj: webmade.org >> kursy online >> kurs php >> Część 4
autor: Leszek 'leon' Krupiński, ostatnia modyfikacja: 2007-10-12
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). Składnia instrukcji warunkowej jest następująca:
<? if(wyrażenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie warunek else if(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.
<? $a = 2; $b = 5; $c = 1; if($a > $b) echo "$a jest większe od $b"; else if($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:
<? $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ż pojedyncze 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.
<? $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 ?>
Leszek 'leon' Krupiński
szukaj: instrukcje warunkowe if else kurs php
Zagadnienia poruszane w tej części kursu:
© 2004-2008 copyright by webmade.org