Kursy mojej produkcji
<?php
// Tablica prawdy dla operacji AND
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 0 |
# 0 | 1 | 0 |
# 1 | 0 | 0 |
# 1 | 1 | 1 |
#-----------+
$a = 1; // true
$b = 1; // true
echo $a & $b; // Czyli wszystkie argumenty muszą mieć wartość 1 aby wyszła prawda
?>
<?php
// Tablica prawdy dla operacji OR
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 0 |
# 0 | 1 | 1 |
# 1 | 0 | 1 |
# 1 | 1 | 1 |
#-----------+
$a = 0; // false
$b = 1; // true
echo $a | $b; // Czyli wystarczy, że jeden argument przybierze wartość 1 i wychodzi prawda
?>
<?php
// Tablica prawdy dla operacji NOT
#---+---+
# a | q |
#---+---+
# 0 | 1 |
# 1 | 0 |
#-------+
$a = 0; // false
echo !$a;
?>
<?php
// Tablica prawdy dla operacji XOR
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 0 |
# 0 | 1 | 1 |
# 1 | 0 | 1 |
# 1 | 1 | 0 |
#-----------+
$a = 1; // true
$b = 1; // true
echo $a ^ $b;
?>
<?php
$a = 1;
$b = 10;
// Przesuwany $a w lewo o $b bitów
echo $a << $b; // 1024
?>
<?php
$a = 1024;
$b = 4;
// Przesuwany $a w prawo o $b bitów
echo $a >> $b; // 64
?>
<?php
// Tablica prawdy dla operacji NOR
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 1 |
# 0 | 1 | 0 |
# 1 | 0 | 0 |
# 1 | 1 | 0 |
#-----------+
$a = 0; // false
$b = 0; // false
echo !($a | $b);
?>
<?php
// Tablica prawdy dla operacji NAND
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 1 |
# 0 | 1 | 1 |
# 1 | 0 | 1 |
# 1 | 1 | 0 |
#-----------+
$a = 0; // false
$b = 0; // false
echo !($a & $b);
?>
<?php
// Tablica prawdy dla operacji ENOR (XNOR)
#---+---+---+
# a | b | q |
#---+---+---+
# 0 | 0 | 1 |
# 0 | 1 | 0 |
# 1 | 0 | 0 |
# 1 | 1 | 1 |
#-----------+
$a = 0; // false
$b = 0; // false
echo !($a ^ $b);
?>
<?php
$a = 0; // false
$b = 0; // false
$c = 0; // false
$d = 1; // true
echo $a | $b | $c | $d; // Wystarczy, że którakolwiek ze zmiennych przyjmie wartość 1 wtedy na wyjściu będzie 1
?>
Kod:<?php
$a = 1; // true
echo (!(!$a)); // Podwójna negacja
?>
Zapewne zauważyliście podczas eksperymentów, że w momencie kiedy wynik powinien wynosić 0 (false) wtedy nic nie wyświetla się. Dzieje się tak ponieważ wynik jest typem boolean o wartości false. Aby obejść ten problem trzeba użyć innej funkcji do wyrzucania danych.