Operatory logiczne — część 1
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 25 z 71.
Operatory logiczne pozwalają łączyć wiele wyrażeń logicznych w jedno. Jest to niezbędne, gdy trzeba sprawdzić kilka warunków naraz.
Operator AND (&&) zwraca true tylko wtedy, gdy oba warunki są prawdziwe:
<?php
$age = 25;
$hasLicense = true;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)
$age = 16;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(false) - warunek dotyczący wieku nie jest spełniony
?>Operator OR (||) zwraca true, gdy co najmniej jeden warunek jest prawdziwy:
<?php
$isWeekend = true;
$isHoliday = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true) - weekend ma wartość true
$isWeekend = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(false) - oba mają wartość false
?>Myśl o && jako o „oba muszą być prawdziwe”, a o || jako o „co najmniej jeden musi być prawdziwy”. W następnej lekcji dowiesz się o operatorze NOT i o tym, jak łączyć wiele operatorów logicznych.
Wyzwanie
ŁatwyWczytaj cztery wartości z wejścia: liczbę całkowitą age, ciąg znaków hasTicket (o wartości "true" lub "false"), ciąg znaków isMember (o wartości "true" lub "false") oraz ciąg znaków hasInvitation (o wartości "true" lub "false").
Konwertuj wartości tekstowe na wartości logiczne, porównując je z "true".
Sprawdź poniższe dwa warunki i wypisz wynik każdego z nich za pomocą var_dump(), każdy w nowej linii:
- Sprawdź, czy dana osoba może wejść na wydarzenie: musi mieć co najmniej 18 lat AND i bilet
- Sprawdź, czy dana osoba może wejść za darmo: musi być członkiem OR mieć zaproszenie
Przykład:
Jeśli dane wejściowe to 25, true, false i true, wynik powinien wyglądać następująco:
bool(true)
bool(true)Wyjaśnienie:
- 25 >= 18 AND hasTicket ma wartość true → true
- isMember ma wartość false OR hasInvitation ma wartość true → true
Spróbuj swoich sił
<?php
// Wczytaj wartości wejściowe
$age = intval(fgets(STDIN));
$hasTicket = trim(fgets(STDIN));
$isMember = trim(fgets(STDIN));
$hasInvitation = trim(fgets(STDIN));
// TODO: Przekształć wartości tekstowe w wartości logiczne, porównując je z "true"
// TODO: Sprawdź, czy osoba może wejść na wydarzenie (ma co najmniej 18 lat ORAZ ma bilet)
// TODO: Sprawdź, czy osoba ma bezpłatny wstęp (jest członkiem LUB ma zaproszenie)
// Wyświetl wyniki za pomocą var_dump()
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online