Not sure where you can read more, but let me try to explain it. The bitwise operators operate on a binary representation of a number. 4 is 100 in binary, 5 is 101. 5 | 4 results in 5, because the | operator sets bits set in either number. 5 & 4 results in 4, because the & operator only sets bits set in both. As for 4 & 4, the same bits are set in both 4 and 4 (since they're the same number! :)), so it results in the same number.

James Taylor wrote:

Where can I read more about this?  I'm not sure that I understand why 4
& 4 == 4.


-----Original Message-----
From: Greg Beaver [mailto:[EMAIL PROTECTED] Sent: Friday, March 07, 2003 11:04 PM
To: [EMAIL PROTECTED]; James Taylor
Subject: [PHP] Re: Difference between & &&



Hi James,


& is a bit-wise AND. && is a logical AND. The bitwise AND will return a number, the logical AND will return true or false boolean values. It's a subtle distinction, but important. 4 & 4 == 4 4 && 4 == true ==
1


Regards,
Greg
--
phpDocumentor
http://www.phpdoc.org

James Taylor wrote:


Ok, this may have already been posted to the list already, but the archives don't seem to like the & and && characters.

I'm running into some code that looks like this:

<snip>
Define('INPUT', 2);
<snip>
if($search->level & INPUT) $tmp.= $search->input();


Ok, what's the & mean?


As far as I could tell from the very little documentation I was able to scrape up on google, & is a bit-by-bit operator. Thus, if either INPUT or $search->level, we get TRUE... If that's the case, what's the





point of using it instead of || ?

Or, do I just totally not understand the point of this. Thanks









-- The above message is encrypted with double rot13 encoding. Any unauthorized attempt to decrypt it will be prosecuted to the full extent of the law.




Reply via email to