有没有办法通过一次比较来检查一个值是等于 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
是否为零,您可以在其中调整位模式的长度以适应变量的最大大小。
我有很多这样的代码
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
是否为零,您可以在其中调整位模式的长度以适应变量的最大大小。