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 <[email protected]>:
> Volmar Machado <[email protected]> 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