I have 17 boolean variables which need to be stored in a MySQL database.  I
created a SET Column to store each of the boolean values as bits in the
column.  I should be able to test for the truth of a particular variable by
checking if the corresponding bit is set.

For example, if the first four variables are set (i.e. Column = a,b,c,d)
then the numeric value of the column is 15 or 1111. To test for c I would
check to see if the third bit (4 or 100) is set.

I chose to do the check this way:

if ($One & $Two == $One) echo "True";

This does not seem to work in many instances.  Take the example above:
4 and 15 should equal 4
0100 and
1111 equals

For some reason, my script gives 0000 as the result of 0100 and 1111.  It is
fairly clear that this is not the correct behavior of the bitwise &

Oddly enough, in some instances is works as expected:
16 and 17 should equal 16
10000 and
10001 equals

My script has no problem generating the expected result here.

Perhaps this problem arises from the loosely typed nature of PHP variables,
but I do not see how it could.  Any pointers would be appreciated.


PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to