what the difference between the 'BITWISE AND' operator and the 'LOGICAL AND' operator?
$a and $b: TRUE if both $a and $b are TRUE.
$a & $b: Bits that are set in both $a and $b are set.