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: