要使用PHP设置复选框数组,我使用来自DB的编码小数。例如dec 5(二进制0000 0101)将checkbox
1和3设置为checked
。
对于复选框1,我使用了如下示例中的三元操作符:
(5 & 1 == 1 ? 'checked' : '')
结果是false
,虽然它应该是true
。
只有当我在条件部分(5 & 1) == 1
中使用额外的括号时,我才能得到正确的结果。最后,示例必须像这样:
((5 & 1) == 1 ? 'checked' : '')
有人知道为什么要这样用括号吗?
位与运算符&
的优先级低于==
。三元条件操作符的优先级在您使用的操作符中最低。
因此5 & 1 == 1 ? 'checked' : ''
被求值为(5 & (1 == 1)) ? 'checked' : ''
。
你在5 & 1
周围放置括号是正确的事情。