ee, ten tvůj předpoklad je špatně. Ta dvojka je tam kvůli tomu, že v binární soustavě se počítá vždycky s mocninami dvou a víš, že když dáš 2 na nějaký číslo, tak ti vyjde číslo, který bude mít v binární soustavě jedničku a pak samý nuly. Takže podle toho hledá, jestli na X pozici (počítáno od 0) je 1.
Je na druhé (počítáno od nuly) pozici čísla 1000100 jednička?
$bool = 1000100 & pow(2,
2) = 1000100 & 100
(to je 4) = 100 = 4
takže $bool > 0 --> ano, na druhé pozici je 1.
Tři stavy tady u toho nikdy mít nemůžeš, protože binární čísla znají jen 0 nebo 1. Tzn. buď zapnuto nebo vypnuto nějaké oprávnění. Každopádně pokud potřebuješ nějaké specifičtější oprávnění např: může editovat stránku a zároveň může všechno číst, tak se může dotazovat na dvě pozice a povolit aby něco udělal jen, když bude mít na obou pozicích 1.
Obecně takhle můžeš uložit jen věci typu true/false, popřípadě true/false && true/false, ale to už psal Ziktofel...