I can't remember who wanted the bit manipulation stuff... But I was looking for something in my bookmarks when I saw this simple little class.
I use bits to test for user permissions for specific function. as in if ((int)$user.permissions & (int)$permbit) {} I dont use that class but thought it could be helpful to you. It has a FlipBit. Mike ------------------------------------ Start Class --------------------------------------------- <?php /* Constants */ define( "BIT_0", 0 ); define( "BIT_1", 1 ); define( "BIT_2", 2 ); define( "BIT_3", 4 ); define( "BIT_4", 8 ); define( "BIT_5", 16 ); define( "BIT_6", 32 ); define( "BIT_7", 64 ); define( "BIT_8", 128 ); define( "BIT_9", 256 ); define( "BIT_10", 512 ); define( "BIT_11", 1024 ); define( "BIT_12", 2048 ); define( "BIT_13", 4096 ); define( "BIT_14", 8192 ); define( "BIT_15", 16384 ); define( "BIT_16", 32768 ); define( "BIT_17", 65536 ); define( "BIT_18", 131072 ); define( "BIT_19", 262144 ); define( "BIT_20", 524288 ); define( "BIT_21", 1048576 ); define( "BIT_22", 2097152 ); define( "BIT_23", 4194304 ); define( "BIT_24", 8388608 ); define( "BIT_25", 16777216 ); define( "BIT_26", 33554432 ); define( "BIT_27", 67108864 ); define( "BIT_28", 134217728 ); define( "BIT_29", 268435456 ); define( "BIT_30", 536870912 ); define( "BIT_31", 1073741824 ); class CBitField { var $bitfield = 0; function CBitField () { $this -> bitfield = ($this -> bitfield | 0); } function QueryBit ($bit) { if (($this -> bitfield & $bit) > 0 ) return 1; else return 0; } function SetBit ($bit, $boolean) { if ($boolean == 1) $this -> bitfield |= $bit; else $this -> bitfield &= ~$bit; } function FlipBit ($bit) { $this -> bitfield ^= $bit; } } ?> ---------------------- End Class ----------------------------------------------------- Example $bits = new CBitField; $bits -> SetBit (BIT_1, 1); $bits -> SetBit (BIT_2, 0); $bits -> SetBit (BIT_3, 0); $bits -> FlipBit (BIT_3); echo $bits -> QueryBit(BIT_1).","; echo $bits -> QueryBit(BIT_2).","; echo $bits -> QueryBit(BIT_3); -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php