有没有办法检查一个值是否等于0或1,只有一个比较?

时间:2015-09-02 18:08:52

标签: php algorithm optimization bit-manipulation

我有很多代码,比如

    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的值。我可以一举使用bitshift运算符吗?

3 个答案:

答案 0 :(得分:4)

// Check if there is content in our form inputs and remove `disabled`
// from the button element.
var inputs = document.querySelectorAll('input[name="e"], input[name="p"]');
var button = document.querySelector('#submit_button');

[].forEach.call(inputs, function (e) {
    e.addEventListener('input', function () {

        // Set states for email and password inputs
        if (this.value != "") {
            button.removeAttribute('disabled');
        } else {
            button.setAttribute('disabled', '');
        }
    });
});

我认为应该这样做。

答案 1 :(得分:1)

您可以使用in_array

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

答案 2 :(得分:0)

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