我正在审核一些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吗?
这里整数值的作用是什么?
答案 0 :(得分:1)
因此,例如,当使用$value = $var & 8
时,$value
将是一个数字,1
和$var
中的8
位也是{ {1}}在新值中。
在您的情况下,这些条件正在测试是否为该值设置了某个位,第4个,第3个和第2个是正确的。
<强>更新强>
以下是第一个条件具有不同值的结果的一些示例。它测试是否设置了右边的第四位。
1
只要设置了一个数字中的一位,PHP就会将其解释为真。