Instrukcje warunkowe są jednym z najważniejszych elementów języka PHP, umożliwiającym wykonywanie określonych operacji w zależności od spełnienia danych warunków. Dzięki nim programy mogą reagować na różne sytuacje w elastyczny sposób.
Podstawowa składnia instrukcji warunkowej (if)
Najprostszy zapis instrukcji warunkowej:
if($a > 0) echo "Wartość zmiennej a jest większa od zera.";
W tym przypadku instrukcja wykona się, jeśli warunek będzie prawdziwy (czyli zmienna $a jest większa od 0).
Blok instrukcji warunkowej
Jeśli chcemy wykonać więcej instrukcji, grupujemy je w bloku:
if($a > 0){
echo "a dodatnie";
$b++;
$c--;
}
Instrukcja warunkowa z alternatywą (else)
Jeśli warunek nie zostanie spełniony, możemy wskazać alternatywne działanie:
if($a > 0){
echo "a większe od 0";
}else{
echo "a nie jest większe od 0";
}
Więcej niż jeden warunek (elseif)
Możemy także zdefiniować wiele alternatywnych warunków:
if($imie == "Jaś") echo "Cześć Jasiu.";
elseif($imie == "Staś") echo "Cześć Stasiu";
else echo "Jak masz na imię?";
Uwaga! Operator porównania to ==, a operator przypisania to =. Błędne użycie operatora przypisania zawsze zwróci prawdę, ponieważ przypisanie wartości jest zawsze operacją prawdziwą.
Przykład: sprawdzanie parzystości
if($a % 2 == 0) echo "Wartość zmiennej a jest parzysta";
else echo "Wartość zmiennej a jest nieparzysta";
Skrócona wersja sprawdzająca nieparzystość:
if($a % 2) echo "Wartość zmiennej a jest nieparzysta";
Instrukcje pojedyncze kontra bloki
Przykłady różnic:
// bez bloku
if($a) $b++; $c--; // $c-- wykona się zawsze
// z blokiem
if($a){
$b++;
$c--; // wykona się tylko jeśli warunek jest prawdziwy
}
Operatory logiczne
-
&&(i) – obie części muszą być prawdziwe -
||(lub) – przynajmniej jedna część musi być prawdziwa
if($x > 0 && $y < 0) echo "X większe od zera i Y mniejsze od zera";
if($x > 0 || $y < 0) echo "X większe od zera lub Y mniejsze od zera";
Instrukcja wyboru (switch)
Pozwala na wybór jednej z wielu opcji w zależności od wartości zmiennej:
switch($k){
case 1:
echo "Jeden";
$x++;
break;
case 2:
echo "Dwa";
$y++;
break;
default:
echo "Domyślnie";
$x++;
$y++;
break;
}
default to blok instrukcji, który wykona się, jeśli żaden z powyższych warunków nie zostanie spełniony.