Dzisiaj7 lipca, 2020

Instrukcje warunkowe

W tym wpisie dowiesz się jak używać instrukcji warunkowych w PHP. Jeśli wcześniej programowałeś i znasz instrukcje warunkowe, możesz pominąć tą część. Instrukcje warunkowe są proste w konstrukcji, po przejrzeniu poniższego kodu powinieneś bez trudu zrozumieć ich działanie:

<?php

if(warunek) {
// jeśli warunek jest spełniony to wykona się ta część kodu
} elseif(warunek2) {
// jeśli pierwszy warunek nie jest spełniony, a drugi tak, to wykona się ta część kodu
} else {
// jeśli pozostałe warunki nie zostały spełnione, wykona się ta część kodu
}

Jak widzisz zrozumienie powyższych instrukcji jest banalne. A co jeśli użyjemy dwóch If’ów po sobie? Zobacz poniższy przykład:

<?php

if(warunek1) {
// jeśli warunek jest spełniony wykona się ta część kodu
}
if(warunek2) {
// jeśli drugi warunek jest spełniony wykona się ta część kodu
}

W tym przypadku instrukcje warunkowe wykonają się niezależnie od siebie.

Rozważmy jeszcze jeden przypadek:

<?php

if(warunek1) {
// jeśli warunek jest spełniony wykona się ta część kodu
}
if(warunek2) {
// jeśli warunek jest spełniony wykona się ta część kodu niezależnie od warunku 1
} elseif(warunek3) {
// jeśli warunek jest spełniony wykona się ta część kodu, jeśli nie został spełniony warunek 2
}

Oczywiście warunki możemy w sobie zagnieżdżać, czyli np.

<?php

if(warunek) {
    if(warunek2) {
    // jeśli warunek i warunek 2 został spełniony
    } else {
    // jeśli warunek został spełniony, ale pozostałe warunki pod tym warunkiem nie
    }
} else {
// jeśli pozostałe warunki nie zostały spełnione, w tym przypadku - jeśli warunek nie został spełniony
}

To tyle jeśli chodzi o instrukcje warunkowe If, Elseif oraz Else. Teraz przyjrzymy się operatorowi trójkowemu.

Operator trójkowy

Operator trójkowy to nic innego jak zapisany w krótszej postaci warunek If oraz Else, użyty w celu zmiany wartości zmiennej. Prezentuje to poniższy kod:

<?php

$a = 1;
$b = 2;
$max = null;
// dłuższa wersja
if($b > $a) {
    $max = $b;
} else {
    $max = $a;
}

// krótszy sposób zapisania z użyciem operatora trójkowego
$max = ($a > $b? $a : $b);

Instrukcja switch

Instrukcji działa na podobnej zasadzie co konstrukcja złożona z warunków If, Elseif oraz Else. Jest jednak bardziej przejrzysta gdy mamy do czynienia z dużą ilością warunków, wtedy też jej używamy.

Budowa konstrukcji switch:

<?php

$a = 1;
switch($a) { // sprawdza wartość zmiennej a
    case 0:
        break;
    case 1:
        // nasz kod wykona się tutaj, bo a = 1
        break;
    case 2:
        break;
    case 3:
        break;
    default:
        break;
}

Warunek Else to tutaj default. Instrukcja break oznacza, że kod nie wykona się dalej. W przypadku gdybyśmy jej nie zapisali, należy zgodnie ze standardem PSR-2 dodać odpowiedni komentarz:

<?php

$a = 1;
switch($a) { // sprawdza wartość zmiennej a
    case 0:
        break;
    case 1:
        // nasz kod wykona się tutaj, bo a = 1
        // no break <-- chodzi o ten komentarz
    case 2:
        // we wcześniejszym przypadku nie było break; więc kod w tym bloku też się wykona
        break;
    case 3:
        return; // alternatywnie zamiast break;
    default:
        break;
}

Od PHP 7 mamy do dyspozycji dodatkowe dwa operatory warunkowe:

Null coalescing operator

Null coalescing operator czyli „??” używamy w celu przypisania zmiennej wartości, gdy zmienna nie posiada wartości lub posiada wartość NULL. Przykład:

<?php

$imie = $_GET['name'] ?? 'anonymous';
echo $imie; // wyświetl wartość name z metody GET, jeśli wartość z name z tej metody nie jest NULL, inaczej wyświetli anonymous.

Spaceship operator

Spaceship operator czyli „<=>” służy do porównywania zmiennych. Zwraca on jedną z trzech wartości z przedziału {-1,0,1}. Przykład:

<?php
echo 1 <=> 1; // 0 - jeśli są równe wartości
echo 1 <=> 2; // -1 - jeśli wartość po lewej stronie jest mniejsza
echo 2 <=> 1; // 1 - jeśli wartość po lewej stronie jest większa
Udostępnij artykuł
guest
0 komentarzy
Inline Feedbacks
View all comments