有没有办法通过一次比较来检查一个值是等于 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;

HOWEVER,我想知道是否有一种更紧凑、优雅和有效的方法来检查值是否为 1 或 0。我可以一次性完成吗移位运算符?

您可以使用 in_array:

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

我认为应该可以解决问题。

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