Decyzje i operatory porównania
Podejmowanie decyzji i operatory porównania
Powiedzmy, że chcemy sprawdzić czy podana przez użytkownika liczba jest większa od 0 i mniejsza od 1000. Co będzie nam do tego potrzebne?
Instrukcja
if (warunek - czy podana liczba jest większa od 0 i mniejsza od 1000)
{
jeśli spełniony, czyli prawda - 1 to wykonaj polecenia w tym bloku
}
else
{
jeśli nie, czyli fałsz - 0 to wykonaj polecenia w tym bloku
}
Kostrukcja będzie wyglądać mniej więcej tak:
$podana_liczba=$_GET['liczba'];
if($podana_liczba>0 && $podana_liczba<1000)
{
echo "Liczba jest mniejsza od 1000 a większa od 0.";
}
else
{
echo "Liczba nie mieści się w przedziale od 0 do 1000";
}
Program uruchamiamy z linku:
http://localhost/~lekcja1/index.php?liczba=100
Czyli podana liczba będzie 100. Gdy chcemy podać liczbę -200 uruchomimy skrypt wpisując w adres przeglądarki:
http://localhost/~b/index.php?liczba=-200
Wykorzystujemy więc tu operatory porównania liczb takich jak:
- a == b - czy a jest równe b
- a>b - czy a jest mniejsze od b
- a>b - czy a jest większe od b
- a!=b - czy a jest różne od b
Wynikiem ich jest albo prawda, czyli 1 albo fałsz czyli 0
oraz operatory logiczne, które z założenia operują nie na liczbach tylko na prawdzie lub fałszu na 0 lub na 1:
- && - operator "i"
- || - operator "lub"
- ^ - negacja
Te pierwsze operatory stosujemy do porównania np. czy 100>0? Odpowiedź będzie tak (1) lub nie (0). Nie ma tu innych możliwości. Wynik tego będzie zatem dwustanowy 1 lub zero prawda lub fałsz.
Zauważmy, że by sprawdzić czy liczba 100 mieści się w przedziale 0-1000 najpierw sprawdzamy czy 100>0 a później czy 100<1000. Żeby wynik był prawdziwy to "pierwszy i drugi" warunek musi być spełniony, czyli musi być "prawda i prawda". Nie może być "prawda i fałsz", lub "fałsz i fałsz" albo "prawda lub fałsz".
Kiedy skorzystamy z operatora ||, czyli lub w warunku? A co jeśli nasze zadanie będzie brzmiało sprawdź czy podana liczba jest mniejsza od zera lub większa od 1000?
$podana_liczba=$_GET['liczba'];
if($podana_liczba<0 || $podana_liczba>1000)
{
echo "Podana liczba jest mniejsza od 0 lub większa od 1000";
}
else
{
echo "Liczba jest mniejsza od 1000 a większa od 0.";
}
Oczywiście w programowaniu z reguły nie ma jednego rozwiązania lecz można zrobić coś na wiele różnych sposobów.
Dodatkowo możemy też zagnieżdżać pytania:
$podana_liczba=$_GET['liczba'];
if($podana_liczba>0 && $podana_liczba<1000)
{
echo "Liczba jest mniejsza od 1000 a większa od 0.";
}
else if($podana_liczba<0)
{
echo "Liczba jest mniejsza od zera";
}
else
{
echo "Liczba jest większa od tysiąca";
}
Przydatna funkcja w decyzjach
isset(); - pomaga sprawdzić, czy zmienna istnieje. Jeśli nie możemy np. użytkownikowi powiedzieć, by ją ustawił i nie uruchomić programu dopóki tego nie zrobi np.
$podana_liczba=$_GET['liczba'];
if(isset($podana_liczba))
{
if($podana_liczba<0 || $podana_liczba>1000)
{
echo "Podana liczba jest mniejsza od 0 lub większa od 1000";
}
else
{
echo "Liczba jest mniejsza od 1000 a większa od 0.";
}
}
else
{
echo "Podaj liczbę!";
}
PHP jak zacząć uczyć się języka?
Edytory PHP
Zmienne i stałe
Tablice w PHP
Operacje na plikach w PHP
Decyzje i operatory porównania
Funkcje w PHP
Menu w PHP - decyzje
Tekst w PHP