浅析PHP 按位与或 (^ 、&)

yipeiwu_com6年前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+Ajax实现的博客文章添加类别功能示例

PHP+Ajax实现的博客文章添加类别功能示例

本文实例讲述了PHP+Ajax实现的博客文章添加类别功能。分享给大家供大家参考,具体如下: 一. 代码 fun.js function saveType(typename, user...

PHP实现的大文件切割与合并功能示例

本文实例讲述了PHP实现的大文件切割与合并功能。分享给大家供大家参考,具体如下: 分割代码 split.php <?php $i = 0;...

PHP 5.0对象模型深度探索之类的静态成员

  静态属性包含在类中要封装的数据,可以由所有类的实例共享。实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。   我们在下例中使用了一个静态属性Cou...

PHP递归创建多级目录

PHP递归创建多级目录

我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){     if(is_dir($dir) || @mkdir($dir,0777))...

PHP获取表单数据与HTML嵌入PHP脚本的实现

 php接受通过HTML表单提交的信息时,会将提交的数据保存在全局数组中,我们可以调用系统特定的自动全局变量数组来获取这些值。 常用的自动全局变量如下所示: 1、GET方式...