Based on what I learned. I create this simple sample that can occurs
in a real world application.
This simulate a system that needs to send a mail when a flag ($mail)
is true, the system need to
check if the category is passed with the flag to know the type of mail to send.
Here is the results.
<?php
 $mail = true;
 $mail_types = array(0,1,2,3,4,5,6,7,8,9,'A','B');
 $print_it = '';
 foreach($mail_types as $mail_type){
        echo "For $mail_type:<br>";
         if($mail & $mail_type){
                $print_it = 'email sent.<br>';
         } else {
                $print_it = 'Mail type not defined!';
         }
        
         if($mail && $mail_type){
                $print_it = ('email sent.<br>' != $print_it) ? 'Only && email
sent.<br>' : NULL;
         } else {
                $print_it =  ('email sent.<br>' == $print_it) ? 'Only & email
sent.<br>' : NULL;
         }
        
         echo $print_it;
 }
?>


2013/1/3 Andreas Perstinger <andiper...@gmail.com>:
> Volmar Machado <qi.vol...@gmail.com> wrote:
>>When the one of the operators were 2, the cases with "<------------"
>>returns 2 otherwise returns 0 (Or 1 when any operator is 1). And if
>>the operators are 1 and 2, return 0 too. Its curious for me.
>
> & is the bitwise and operator. You have to look at the binary
> representation of the numbers to see what is happening:
> 2 decimal is 0010 binary
> 1 decimal is 0001 binary
>
> 2 & 1 == 0010 & 0001 == 0000 == 0
>
> In your other examples you had
> 2 & 3 == 0010 & 0011 == 0010 == 2
> and
> 4 & 3 == 0100 & 0011 == 0000 == 0
>
> Does this help?
>
> Bye, Andreas
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to