博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 位运算
阅读量:6006 次
发布时间:2019-06-20

本文共 1095 字,大约阅读时间需要 3 分钟。

hot3.png

?phpdefine("mDELETE",8);define("mUPLOAD",4);define("mWRITE",2);define("mREAD",1);//vvvvvvvvvvvvv使用说明vvvvvvvvvvvvv//部门经理的权限为(假设它拥有此部门的所有权限),| 是位或运行符,不熟悉的就查查资料echo mDELETE|mUPLOAD|mWRITE|mREAD ;// 相当于是把上面的权限值加起来:8+4+2+1=15// 设我只有 upload 和 read 权限,则echo mUPLOAD|mREAD ;//相当于是把上传、只读的权限值分别相加:4+1=5/**赋予它多个权限就分别取得权限值相加,又比如某位员工拥有除了删除外的权限其余都拥有,那它的权限值是多少?*应该是:4+2+1=7*明白了怎么赋值给权限吧?*///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//判断某人的权限可用,设权限值在$key中/**判断权限用&位与符,*/$key = 13;//13=8+4+1if($key & mDELETE) echo "有删除权限"; //8if($key & mUPLOAD) echo "有上传权限"; //4if($key & mWRITE) echo "有写权限";//无此权限if($key & mREAD) echo "有读权限"; //1exit;

 

var_dump(12&13);//输出 int 12//12转换成32位的二进制数为:00000000 00000000 00000000 00001100//13转换成32位的二进制数为:00000000 00000000 00000000 00001101//按位运算后得到的值为      00000000 00000000 00000000 00001100 ,等于12var_dump('A'&'a');//输出string 'A';因为A=65,a=97var_dump('A'&97);//输出int 0;因为字符串A会先转换为整数的0后再参与位运算//3.按位非,按位异或等比较简单,这里不做过多讲叙;现在讲讲按位左移和按位右移动 var_dump(12>>2);//输出int 3 var_dump(12<<2);//输出int 48 //可以发现,左移几位就相当于乘以2的多少次方;按位右移就相当于除以2的多少次方;var_dump(~10);

 

转载于:https://my.oschina.net/shunshun/blog/1648016

你可能感兴趣的文章
ubuntu下c语言hello world
查看>>
架构师的御人之道
查看>>
高效编写Dockerfile的几条准则
查看>>
响应式布局的常用解决方案对比(媒体查询、百分比、rem和vw/vh)
查看>>
在虚拟现实中解谜,PSVR游戏《Statik》将于4月24日正式发售
查看>>
云计算史上的第一次开箱直播 阿里云神龙技术架构首次全方位曝光
查看>>
android opencv2.4.10使用SIFT编译出libnonfree.so
查看>>
Monitorix 3.11.0 发布,系统监控工具
查看>>
pyteam v0.1 更新,新增接口文档管理、聊天室与任务附件上传功能
查看>>
go-fastdfs v1.1.9增加文件自动迁移功能、文件可重复选项
查看>>
Riverbed发布SteelFusion 5.0,对NAS存储提供支持
查看>>
BTA | 朱佩江:Pallet项目,“细腰”链通互联网价值体系
查看>>
如何用App工厂一键生成电商应用 4步骤获得属于你的应用
查看>>
机器学习+云服务,一种互惠互利的结合物
查看>>
布局出行服务,大众集团还需更谨慎
查看>>
Android性能分析工具简介
查看>>
C#上位机串口控制12864显示
查看>>
制造不同尺寸纳米晶体新方法,或将用于生产柔性彩色显示屏
查看>>
Android Studio工具修理集
查看>>
SpringBoot使用WebJars
查看>>