这个号码来自哪里?

时间:2017-10-05 16:03:05

标签: php

我正在审核一些PHP代码并偶然发现:

if(($this->int & 0b111111111) === 0){ //blah

我对0b111111111的来源感到非常困惑。这是什么以及它是如何产生的?我var_dumped它结果是511,但是为什么用这个而不是数字511?它来自哪里?

1 个答案:

答案 0 :(得分:2)

它是一个使用binary notation的整数,并且以十进制表示法等于511。

编码器正在使用它作为二进制AND(&)的掩码。

仅当$this->int == 0时,测试等于0,因为二进制AND运算符比较二进制值的每个位,并且在相应位置返回1,其中左右数字在该位置都有1。 / p>

我对此处的使用没有特别的想法:根据上下文,它可能是为了一致性。或者它只是写作的“聪明代码”

if($this->int === 0){     // Dumber blah