POWRÓT NA STRONĘ SZKOŁY

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;<br />'; else echo '($a && $b)===false;<br />';
  
  echo '<br />';
  $a=true;echo '$a=true;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a && $b)===true) echo '($a && $b)===true;<br />'; else echo '($a && $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=true;echo '$b=true;<br />';
  if (($a && $b)===true) echo '($a && $b)===true;<br />'; else echo '($a && $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a && $b)===true) echo '($a && $b)===true;<br />'; else echo '($a && $b)===false;<br />';
?>

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 lub 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;<br />'; else echo '($a || $b)===false;<br />';
  
  echo '<br />';
  $a=true;echo '$a=true;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a || $b)===true) echo '($a || $b)===true;<br />'; else echo '($a || $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=true;echo '$b=true;<br />';
  if (($a || $b)===true) echo '($a || $b)===true;<br />'; else echo '($a || $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a || $b)===true) echo '($a || $b)===true;<br />'; else echo '($a || $b)===false;<br />';
?>

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;<br />'; else echo '($a xor $b)===false;<br />';
  
  echo '<br />';
  $a=true;echo '$a=true;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a xor $b)===true) echo '($a xor $b)===true;<br />'; else echo '($a xor $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=true;echo '$b=true;<br />';
  if (($a xor $b)===true) echo '($a xor $b)===true;<br />'; else echo '($a xor $b)===false;<br />';
  
  echo '<br />';
  $a=false;echo '$a=false;<br />';
  $b=false;echo '$b=false;<br />';
  if (($a xor $b)===true) echo '($a xor $b)===true;<br />'; else echo '($a xor $b)===false;<br />';
?>

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ń.

Praca domowa

Wykonaj własne skrypty testujące operatory logiczne.


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