Lekcje >> Podstawy PHP
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

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ść)
  • $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.


Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: