-1

我想将用户权限作为整数存储在数据库中,但不知道如何......它如何在 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。

好的,所以我明白这是二元运算“或”,只要连续常数乘以 2,一切都应该是可逆的......但是如何?

所以我得到了这个(int)10。以及如何检查它是E_WARNINGE_NOTICE

PS。我确实知道它是1010二进制表示法。

4

2 回答 2

1

如果要检查是否设置了值,可以使用按位 AND&运算符。

$warningEnabled = $val & E_WARNING;

这是有效的,因为(假设$val128)......

1000 0000 & # $value
0000 0010   # E_WARNING

由于两者都没有设置相同的位,因此您可以看出$val没有设置警告。

如果您喜欢使用bindec()函数(将上述值包装为字符串),您可以在 PHP 中执行此操作,它可以帮助您更好地理解。

于 2013-10-25T05:11:29.523 回答
1

如果您想知道该值是否包含E_WARNING,请执行以下操作:

if ($value & E_WARNING)
于 2013-10-25T05:11:49.563 回答