是否有一种方法可以检查一个值是否等于0或1,只需进行一次比较


Is there a way to check whether a value equals 0 or 1, with a single comparison?

我有很多像

这样的代码
    case 'add':
    {   
        $succeeded = $wpdb->insert('coms', 
                                   array('name'=>$name,'story'=>$story,'imgurl'=>$imgurl)
                                   ) === 1;
        break;
    }

,我刚刚意识到我需要把它们全部改变,以便与1和0进行比较。它们都像

        $numRowsAffected = $wpdb->insert('coms', 
                                   array('name'=>$name,'story'=>$story,'imgurl'=>$imgurl)
                                   );
        $succeeded = $numRowsAffected === 1 || $numRowsAffected === 0;

然而,我想知道是否有一种更紧凑,优雅和有效的方法来检查1或0的值。我可以用位移运算符一下子做到吗?

if ($value | 1 === 1)

您可以使用in_array:

$succeeded = in_array($numRowsAffected, array(0, 1));

您可以检查variable & 0b1111111111111110是否为零,其中您将位模式的长度调整为变量的最大大小