我想将用户权限存储为数据库中的整数,但不确定如何...如何在PHP上使用error_reporting()?
你有不同的常数,比如... E_ERROR
= 1,E_WARNING
= 2,E_PARSE
= 4,E_NOTICE
= 8等......你可以设置为error_reporting(E_ERROR | E_NOTICE)
...
在这种情况下E_WARNING | E_NOTICE
== 10。
好的,所以我明白这是二进制操作“OR”,并且就连续常数乘以2而言,一切都应该是可逆的......但是如何?
所以我得到了这个(int)10。我如何检查它是E_WARNING
和E_NOTICE
?
PS。我确实理解二进制表示法是1010
。
答案 0 :(得分:1)
如果要检查值是否设置,可以使用按位AND &
运算符。
$warningEnabled = $val & E_WARNING;
这是有效的,因为(假设$val
是128
)...
1000 0000 & # $value
0000 0010 # E_WARNING
由于两者都未设置相同的位,因此可以判断$val
没有设置警告。
如果您喜欢使用bindec()
函数(将上述值包装为字符串),可以在PHP中执行此操作,这可能有助于您更好地理解。
答案 1 :(得分:1)
如果您想知道该值是否包含E_WARNING
,请执行:
if ($value & E_WARNING)