我正在开发一个有趣的网站,并且我正在尝试实现基于位运算符的目录访问控制。
我已经定义GUEST = 1, GROUP1 = 15 and GROUP2 = 23
如果我比较
echo (23 & 1); // print 1
但如果我定义GUEST
,GROUP1
和GROUP2
:
define('GUEST', 1);
define('GROUP1', 15);
define('GROUP2', 23);
// and then
echo (GROUP2 & GUEST); // print 0
echo USER_GUEST.','.USER_ROLES1.','.USER_ROLES2; // print 1,15,23`
没有GROUP1
问题:
echo (GROUP1 & GUEST); print 1.
我哪里错了?一些建议?谢谢。
我发现了一些非常奇怪的东西:我的 GUEST、GROUP1 和 GROUP2 在一个 ini 文件中声明,我通过函数 parse_ini_file(self::$fileName, true); 解析该文件。一个班级内。在我解析了文件后,我递归地定义了在 [DEFINE] 部分下定义的键=值(一个简单的技巧)。如果我在那里评论我的 GROUP2=23 定义并在当前脚本 (GROUP2 & GUEST) 中声明它,则返回 1!