php运算符 的作用是,PHP位运算符的作用

先来看看手册里位运算符的解释:

例子

名称

结果

$a & $b

And(按位与)

将把$a和$b中都为 1 的位设为 1。

$a | $b

Or(按位同或)

将把$a和$b中任何一个为 1 的位设为 1。

$a ^ $b

Xor(按位异或)

将把$a和$b中一个为 1 另一个为 0 的位设为 1。

~ $a

Not(按位取反)

将$a中为 0 的位设为 1,反之亦然。

$a << $b

Shift left(左移)

将$a中的位向左移动$b次(每一次移动都表示“乘以 2”)。

$a >> $b

Shift right(右移)

将$a中的位向右移动$b次(每一次移动都表示“除以 2”)。

再看一个实际的列子加深理解:

$a = 5;

$b = 2;

a & b = 0 (101 & 010)(相当于|的逆运算,如:13 = 8|5,那么13&5结果是5,13&8结果是8)

a | b = 7 (101 | 010)(和加法运算相等)

~a = -6 (~101)(这里不好理解,可以这样记忆:~0=-1;~1=-2......~5=-6)

a ^ b = 7 (101 ^ 010)

a << b = 20 (101 << 010)

a >> b = 1 (101 >> 010)

接下来和大家共享一下

位运算符在php的运用:

a555b479e3a8a03f1c11606e06e866d9.gif

一:ecshop里面的init.php文件有些这样的语句:

if ((DEBUG_MODE & 1) == 1)

{

error_reporting(E_ALL);

}

else

{

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

}

if ((DEBUG_MODE & 4) == 4)

{

include(ROOT_PATH . 'includes/lib.debug.php');

}

ecshop用这样的方式实现了不同的报错方式

二: 赋予权限值

define(“DELETE”,8);//删除

define(“UPLOAD”,4);//上传

define(“WRITE”,2);//写入

define(“READ”,1);//只读

/*这是个权限判定函数*/

function power($key)

{

$str = '';

if(($key&DELETE) == DELETE) $str .= '删除,';

if(($key&UPLOAD) == UPLOAD) $str .= '上传,';

if(($key&WRITE) == WRITE) $str .= '写入,';

if(($key&READ) == READ) $str .= '只读,';

if($str != '')

{

echo "您拥有:".rtrim($str,',').'权限';

}

else

{

echo "您没有任何权限";

}

}

//假如一个人的权限值为7

power('7');

//结果: 您拥有:上传,写入,只读权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值