我使用位掩码访问应用程序,我有一个数组:
$arr['view_info'] = 2;
$arr['view_terminals'] = 4;
$arr['view_payments'] = 6;
$arr['view_subdealers'] = 8;
$arr['view_providers'] = 10;
$arr['view_users'] = 12;
$arr['view_reports'] = 14;
所以,问题是,如果不允许访问4到14之间的opts,我如何添加权限,例如view_terminals和view_reports?
只是最后一个问题-如何添加8个以上的权限,正如我所知,我们在二进制系统中有255个最大值-所以最后一个是128?我听说过团体。
用那些很难做的值。你的位掩码值应该是2的幂,即1、2、4、8、16、32、64、128、256等。然后你就可以做$arr['view_terminals'] | $arr['view_reports']
了。
为了使用位掩码,您需要使数组的值为2的幂。看见http://en.wikipedia.org/wiki/Mask_(计算)
在您的情况下:
$arr['view_info'] = 1; // 0000000001
$arr['view_terminals'] = 2; // 0000000010
$arr['view_payments'] = 4; // 0000000100
$arr['view_subdealers'] = 8; // 0000001000
$arr['view_providers'] = 16; // 0000010000
$arr['view_users'] = 32; // 0000100000
$arr['view_reports'] = 64; // 0001000000
并将您的用户(0001000010
)的用户权限设置为2+64