Operatory porównań
Instrukcja if...else
W programowaniu, wszystko jest ze sobą tak powiązane, że w tym miejscu musimy nieco wyprzedzić materiał nauczania, aby zrozumieć działanie operatorów porównań. Poznamy wstępnie instrukcję warunkową, która ma postać:
if (warunek) instrukcja_1; else instrukcja_2;
, gdzie warunek
jest wyrażeniem dającym wartość true
lub false
. Działanie instrukcji tłumaczymy następująco:
Jeżeli spełniony jest warunek (jeżeli warunek zwraca wartość true), to wykonywana jest intrukcja_1, w przeciwnym razie wykonywana jest intrukcja_2;
Podstawowa definicja
Operator porównania, jak sama nazwa wskazuje, jest stosowany wtedy, kiedy chemy porównać dwie wartości lub dwa wyrażenia które "dają" jakieś wartości. Jak porównujemy? Podobnie jak w matematyce - większy, mniejszy, równy, itd. Wyrażenie w których występuje operator porówniania dają w wyniku prawdę true
, lub fałsz false
. Przy okazji przypominam, że instrukcja kończy się średnikiem i jest poleceniem sterującym przebiegiem programu, natomiast wyrażenia zawsze zwracają wynik i nie mają bezpośredniego wpływu na przebieg programu. Na przykład:
$a=3;//to jest instrukcja (przypisania)
$b=9;//to także jest instrukcja
$c=1;//również tutaj mamy instrukcję
$a>$b //to jest wyrażenie, które zwraca fałsz, ponieważ 3 nie jest większe od 9
$a+$b>$b+$c //to wyrażenie jest prawdziwe, ponieważ 3+9 > 9+1
Operator równości i operator identyczności
Najważniejsza uwaga - łatwo podczas pisania kodu pomylić te operatory z operatorem przypisania, co może być przyczyną poważnych błędów w działaniu programu, tym trudniejszych do wykrycia, że nie zobaczymy żadnego komunikatu o błędzie.
Operator równości ==
, to dwa znaki równości pisane jeden po drugim.
Operator identyczności ===
, to trzy znaki równości pisane jeden po drugim.
Operator równości porównuje wartości, natomiast operator identyczności sprawdza dodatkowo zgodność typów zmiennych.
Ćwiczenie 1_8_3_1. Sprawdzenie operatorów równości i identyczności
Zastosuj poniższy kod w pojedynczym pliku *.php.
<?php
$a=5;echo '$a=5;<br />';
$b=7;echo '$b=7;<br />';
//porównanie co do wartości
if ($a==$b) echo 'Wartości zmiennych $a i $b są jednakowe.';
else echo 'Wartości zmiennych $a i $b są różne.';
echo '<br /><br />';
$a=5;echo '$a=5;<br />';
$b='5';echo '$b=’5’;<br />';
//porównanie co do wartości
if ($a==$b) echo 'Wartości zmiennych $a i $b są jednakowe.';
else echo 'Wartości zmiennych $a i $b są różne';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a===$b) echo ' Zmienne $a i $b są identyczne';
else echo ' Zmienne $a i $b nie są identyczne';
echo '<br /><br />';
$a=true; echo '$a=true;<br />';
$b=1; echo '$b=1;<br />';
//porównanie co do wartości
if ($a==$b) echo 'Wartości zmiennych $a i $b są jednakowe.';
else echo 'Wartości zmiennych $a i $b są różne.';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a===$b) echo ' Zmienne $a i $b są identyczne.';
else echo ' Zmienne $a i $b nie są identyczne';
echo '<br /><br />';
$a=5;echo '$a=5;<br />';
$b=5;echo '$b=5;<br />';
//porównanie co do wartości
if ($a==$b) echo 'Wartości zmiennych $a i $b są jednakowe.';
else echo 'Wartości zmiennych $a i $b są różne.';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a===$b) echo ' Zmienne $a i $b są identyczne.';
else echo ' Zmienne $a i $b nie są identyczne';
?>
Inne operatory porównań
$a!=$b
lub$a<>$b
$a nie jest równe $b (co do wartości)$a!==$b
$a nie jest identyczne jak $b (chociaż mogą mieć jednakową wartośc)$a<$b
$a jest mniejsze od $b$a>$b
$a jest większe od $b$a<=$b
$a jest mniejsze lub równe $b$a>=$b
$a jest większe lub równe $b
Ćwiczenie 1_8_3_2. Sprawdzenie innych operatorów porównań
Zastosuj poniższy kod w pojedynczym pliku *.php.
<?php
$a=5;echo '$a=5;<br />';
$b=7;echo '$b=7;<br />';
//porównanie co do wartości
if ($a!=$b) echo 'Zmienne $a i $b mają różne wartości.';
else echo 'Wartości zmiennych $a i $b są jednakowe.';
if ($a>$b) echo ' $a jest większe od $b.';
else if ($a<$b) echo ' $a jest mniejsze od $b.';
if ($a<=$b) echo ' $a jest mniejsze lub równe $b.';
if ($a>=$b) echo ' $a jest równe lub większe od $b.';
echo '<br /><br />';
$a=5;echo '$a=5;<br />';
$b='5';echo '$b=’5’;<br />';
//porównanie co do wartości
if ($a!=$b) echo 'Zmienne $a i $b mają różne wartości.';
else echo 'Wartości zmiennych $a i $b są jednakowe.';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a!==$b) echo ' Zmienne $a i $b nie są identyczne.';
else echo ' Zmienne $a i $b są identyczne.';
echo '<br /><br />';
$a=true; echo '$a=true;<br />';
$b=1; echo '$b=1;<br />';
//porównanie co do wartości
if ($a!=$b) echo 'Zmienne $a i $b mają różne wartości.';
else echo 'Wartości zmiennych $a i $b są jednakowe.';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a!==$b) echo ' Zmienne $a i $b nie są identyczne.';
else echo ' Zmienne $a i $b są identyczne.';
echo '<br /><br />';
$a=5;echo '$a=5;<br />';
$b=5;echo '$b=5;<br />';
//porównanie co do wartości
if ($a!=$b) echo 'Zmienne $a i $b mają różne wartości.';
else echo 'Wartości zmiennych $a i $b są jednakowe.';
//porównanie co do wartości i typu - czy zmienne są identyczne
if ($a!==$b) echo ' Zmienne $a i $b nie są identyczne.';
else echo ' Zmienne $a i $b są identyczne.';
?>
Zwróć uwagę na podobieństwa i różnice tego i poprzedniego ćwiczenia.
Praca domowa
Wykonaj własne skrypty testujące operatory porównań.
Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: