浅析PHP 按位与或 (^ 、&)
更新时间:2013年06月21日 09:21:37 作者:
本篇文章是对PHP中的按位与或 (^ 、&)进行了详细的分析介绍,需要的朋友参考下
今天朋友群里朋友问了下 按位与或的问题。。
PHP 工作有1年了 可能对这块不太熟悉吧 在这里给新手朋友介绍下这部分
按位于主要是对二进制数操作。
<?php
$a = 1;
$b = 2;
$c = $a^b;
echo $c // 3
?>
这里不是单纯的相加关系
十进制 1换算成二进制 00000001
十进制 2换算成二进制 00000010
按位^ 00000011 // 就是不相同的都算成1 啦 ^_^
然后,
<?php
$a = 1;
$b = 2;
echo $a & $c; // 1
?>
十进制 3换算成二进制 00000011
十进制 1换算成二进制 00000001
按位& 00000001 // 就是各个位数相同的不变否则都算成0
最后介绍下用法 ; 按位&后返回值是没意义的。 主要是用来判断$a 是否存在于 $c // 权限用法比较多。
<?php
$my_privilege = 15; // 1+2+4+8 拥有全部权限
$Pri = '';
$privilege_arr = array(8=>'增', 4=>'删',2=>'改',1=>'查');
foreach($privilege_arr as $k =>$v){
$k & $my_privilege && $Pri .= '我有'.$v.'的权力<br>';
}
echo $Pri;
?>
PHP 工作有1年了 可能对这块不太熟悉吧 在这里给新手朋友介绍下这部分
按位于主要是对二进制数操作。
复制代码 代码如下:
<?php
$a = 1;
$b = 2;
$c = $a^b;
echo $c // 3
?>
这里不是单纯的相加关系
十进制 1换算成二进制 00000001
十进制 2换算成二进制 00000010
按位^ 00000011 // 就是不相同的都算成1 啦 ^_^
然后,
复制代码 代码如下:
<?php
$a = 1;
$b = 2;
echo $a & $c; // 1
?>
十进制 3换算成二进制 00000011
十进制 1换算成二进制 00000001
按位& 00000001 // 就是各个位数相同的不变否则都算成0
最后介绍下用法 ; 按位&后返回值是没意义的。 主要是用来判断$a 是否存在于 $c // 权限用法比较多。
复制代码 代码如下:
<?php
$my_privilege = 15; // 1+2+4+8 拥有全部权限
$Pri = '';
$privilege_arr = array(8=>'增', 4=>'删',2=>'改',1=>'查');
foreach($privilege_arr as $k =>$v){
$k & $my_privilege && $Pri .= '我有'.$v.'的权力<br>';
}
echo $Pri;
?>
相关文章
php中session_unset与session_destroy的区别分析
关于session_unset()和session_destroy()的函数使用进行介绍。学习php的朋友可以参考下。2011-06-06PHPWind与Discuz截取字符函数substrs与cutstr性能比较
PHP性能优化系列第四期实战篇,如何使用PEAR Benchmark类工具获取函数执行性能,这里以PHPWind与Discuz!两个社区论坛的截取字符函数substrs与cutstr为例,分析两个函数的执行性能情况2011-12-12PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
最近, 从discuz里面发现了一个很牛的加密解密函数。此函数的厉害之处在于可以在指定时间内加密还原字符串,超时无法还原.2010-04-04
最新评论