• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 按位与(&)运算符应用实践

php 搞代码 4年前 (2022-01-23) 9次浏览 已收录 0个评论

PHP的按位与运算是将数字转换成二进制格式进行位运算。

PHP手册中的讲解为

$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

1、&的运算方法(奇偶性判断)

整数与“1”进行按位与运算,运算结果为“0”表示为偶数,运算结果为“1”表示为奇数。

$a = 3&1;echo '3&1:'.$a ; //3&1:1echo '
';$b = 4&1;echo '4&1:'.$b; //4&1:0

3 和1转换为二进制为

‘3’二进制:11
‘1’二进制:01 则3&1的二进制运算结果为01,转换为十进制就是‘1’;

‘4’二进制:100

‘1’二进制:001 则4&1的二进制运算结果为000,转换为十进制就是‘0’;

PS:‘%’(取模运算)符号也可以用来计算奇偶性,“3%2” 的输出结果为1 ,“4%2”的输出结果为0。“%”的运算效率要略高于“&”运算符。

function getMillisecond() {    list($t1, $t2) = explode(' ', microtime());    return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);}/*    判断数字的奇偶性*/$a = getMillisecond();for($i=1;$i%本文@来源gao@!dai!ma.com搞$$代^@码!网搞代gaodaima码<10000000;$i++) $i&1;$b = getMillisecond();echo '&执行1千万次计算毫秒耗时:'.($b-$a); //&执行1千万次计算毫秒耗时:1068echo '
';$c = getMillisecond();for($i=1;$i<10000000;$i++) $i%2;$d = getMillisecond();echo '%执行1千万次计算毫秒耗时:'.($d-$c); //%执行1千万次计算毫秒耗时:1035

2、用户权限的判断

假设一个系统中用户权限分配模块,设置权限为1=>查看,2=>新增, 4=>修改 ,8=>删除,如此存储用户的权限,只需要在数据库中存一个整数合即可,不用存储间隔出的字符串。

如果用户拥有新增和查看权限,功能代码为:1+2 = 3;用户拥有所有权限,则功能 代码为:1+2+4+8 = 15;

用户所有用的权限为12

检测用户权限是否拥有修改权限:12&4 结果为4,表示拥有修改权限。

检测用户权限是否拥有新增权限:12&2 结果为0,表示没有新增权限。

在数据库中查找所有拥有修改权限的用户:select * from user where (user_mod&4) > 0,即可查出来所有拥有修改权限的用户。

以上就介绍了PHP 按位与(&)运算符应用实践,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 按位与(&)运算符应用实践

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址