POWRÓT NA STRONĘ SZKOŁY

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: