PHP &&给出错误的答案

时间:2020-06-19 09:55:22

标签: php logic php-7

我正在将一些VB代码转换为PHP,并且一行中有一个逻辑运算符AND。

PHP和VB给我不同的结果,因此分解每个步骤,归结为逻辑运算符AND(或&&),就像在PHP中一样。

在PHP中,我有:

($intAscii && $a)

的值为$intAscii = 87$a = 128

上面的逻辑应该返回0,但是PHP返回1。

将它们转换为二进制:

    87 = ‭01010111‬
    128 = 10000000‬

所以看来这应该返回0,所以PHP为什么坚持要返回1?

完整功能在这里:

    Function IsBitSet($intAscii , $intBit) {

        //'change the value of the integer passed by
        //'turning on the bit passed
        $a=(int)(pow(2 ,(int)$intBit));
        $b=($intAscii && $a);
        echo '</br>Manual AND  87 && 128 '.(87 && 128) .'</br>';
        echo 'is bit set $intAscii='.$intAscii .' $a='.$a.' And = '.( $b).'</br>';

        Return(($intAscii && $a) <> 0);

    }

和输出:

Manual AND 87 && 128 1
is bit set $intAscii=84 $a=128 And = 1

0 个答案:

没有答案