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 logiczne

Operator !

Operator ! (znak wykrzyknika), jest logicznym zaprzeczeniem - not (nie). Zaprzeczeniem prawdy jest fałsz, natomiast zaprzeczeniem fałszu - prawda. Tak więc, jeżeli $a === true, to !$a === false. Jeżeli natomiast $a === false, to !$a === true.

Ćwiczenie 1_8_4_1. Testowanie operatora !

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = true;echo '$a = true;<br />';
  if (!$a === true) echo '!$a === true;<br />'; else echo '!$a === false;<br />';

  $a = false;echo '$a = false;<br />';
  if (!$a === false) echo '!$a === false;<br />'; else echo '!$a === true;<br />';
?>

Operator &&

Operator && (dwa znaki ampersand pisane jeden po drugim), to logiczne and (i). Wyrażenie $a && $b zwraca true tylko wtedy, gdy $a === true oraz $b === true.

Ćwiczenie 1_8_4_2. Testowanie operatora &&

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = true;echo '$a = true;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a && $b) === true) echo '($a && $b) === true;' else echo '($a && $b) === false;';
  
  echo '<br /><br />';
  $a = true;echo '$a = true;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a && $b) === true) echo '($a && $b) === true;' else echo '($a && $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a && $b) === true) echo '($a && $b) === true;'; else echo '($a && $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a && $b) === true) echo '($a && $b) === true;'; else echo '($a && $b) === false;';
?>

Zamiast operatora &&, stosuje się również operator and, przy czym należy pamiętać, że ma on mniejsze pierwszeństwo.

Operator ||

Operator || (dwie pionowe kreski pisane jedna po drugiej), to logiczne or (lub). Wyrażenie $a || $b zwraca true, gdy $a === true lub $b === true, albo gdy obie zmienne są true.

Ćwiczenie 1_8_4_3. Testowanie operatora ||

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = true;echo '$a = true;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a || $b) === true) echo '($a || $b) === true;'; else echo '($a || $b) === false;';
  
  echo '<br /><br />';
  $a = true;echo '$a = true;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a || $b) === true) echo '($a || $b) === true;'; else echo '($a || $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a || $b) === true) echo '($a || $b) === true;'; else echo '($a || $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a || $b) === true) echo '($a || $b) === true;'; else echo '($a || $b) === false;';
?>

Zamiast operatora ||, stosuje się również operator or, przy czym należy pamiętać, że ma on mniejsze pierwszeństwo.

Operator xor

Alternatywa wykluczająca. Wyrażenie $a xor $b zwraca true, gdy $a === true lub $b === true, ale nie jednocześnie.

Ćwiczenie 1_8_4_4. Testowanie operatora xor

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = true;echo '$a = true;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a xor $b) === true) echo '($a xor $b) === true;'; else echo '($a xor $b) === false;';
  
  echo '<br /><br />';
  $a = true;echo '$a = true;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a xor $b) === true) echo '($a xor $b) === true;'; else echo '($a xor $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = true;echo '$b = true;<br />';
  if (($a xor $b) === true) echo '($a xor $b) === true;'; else echo '($a xor $b) === false;';
  
  echo '<br /><br />';
  $a = false;echo '$a = false;<br />';
  $b = false;echo '$b = false;<br />';
  if (($a xor $b) === true) echo '($a xor $b) === true;'; else echo '($a xor $b) === false;';
?>

Wyrażenia logiczne

Podczas konstruowania wyrażeń logicznych, stosuje się te same prawa, co w logice matematycznej.

Ćwiczenie 1_8_4_5. Testowanie wyrażeń logicznych

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = true;
  $b = false;

  //zaprzeczenie alternatywy
  $c = !($a || $b);
  $d = !$a && !$b;
  if ($c === $d) 
  echo '!($a || $b) === !$a && !$b zaprzeczeniem altermnatywy jest koniukcja zaprzeczeń';
  
  //zaprzeczenie koniukcji
  echo '<br />';
  $c = !($a && $b);
  $d = !$a || !$b;
  if ($c === $d) 
  echo '!($a && $b) === !$a || !$b zaprzeczeniem koniunkcji jest alternatywa zaprzeczeń';
?>

Przykład pokazuje dwa podstawowe prawa logiczne:

  • zaprzeczeniem alternatywy jest koniunkcja zaprzeczeń,
  • zaprzeczeniem koniukcji jest alternatywa zaprzeczeń.

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