这条件意味着什么?

时间:2017-08-07 08:20:48

标签: php

我正在审核一些PHP代码,发现了一些我无法理解的条件语句。

     if ($options['mentionbbcode'] & 8) {
                $final_rendered .= '<span class="highlight">';
        } 
     if ($options['mentionbbcode'] & 4) {
                $final_rendered .= '<i>';
        } 

     if ($options['mentionbbcode'] & 2) {
                $final_rendered .= '<b>';
        }

这三个条件之间有什么区别..如果设置$options['mentionbbcode'],它们都不会返回true吗? 这里整数值的作用是什么?

1 个答案:

答案 0 :(得分:1)

那是a bitwise and operation

因此,例如,当使用$value = $var & 8时,$value将是一个数字,1$var中的8位也是{ {1}}在新值中。

在您的情况下,这些条件正在测试是否为该值设置了某个位,第4个,第3个和第2个是正确的。

<强>更新
以下是第一个条件具有不同值的结果的一些示例。它测试是否设置了右边的第四位。

1

只要设置了一个数字中的一位,PHP就会将其解释为真。