我正在开发一个有趣的网站,我试图实现一个基于位运算符的目录访问控制。
我定义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.
我哪里错了?一些建议? 谢谢。
我发现很奇怪的事情:我的客人,Group1和Group2是我通过一个函数parse_ini_file解析(个体经营:: $文件名,真实)的ini文件中声明;在一个班级内。 在我分析完文件后,我递归地定义了在[DEFINE](简单的技巧)下定义的夫妇key =值。 如果我在那里评论我的GROUP2 = 23定义,并在当前脚本中声明它(GROUP2 & GUEST),则返回1!
我测试你的代码在PHP 4.4和5.2,并在这两个'回声(GROUP2&GUEST);''打印1' – webbiedave 2010-08-13 18:04:34
'GROUP2&GUEST'也给我返回1。 – kiamlaluno 2010-08-13 18:46:18