php位运算符注意事项_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php位运算符注意事项

php位运算符注意事项

 2013/5/19 14:50:52  home198979  程序员俱乐部  我要评论(0)
  • 摘要:$a=$b=$c=0;$a&$b=1;$b|$c=1问a,b,c最终为多少?当看到这题时,我犯了一个低级错误,误以为位运算符会改变变量的值。所以得出结果是110但是位运算符是不会改变变量的值的,例如:$a=1;$b=2;$a&$b;这样a,b的值不会有任何改变再看到上面那题,先弄清一下运算符的优先级运算符优先级结合方向运算符附加信息非结合clonenewclone和new左[array()非结合++--递增/递减运算符非结合~-(int)(float)(string)
  • 标签:注意事项 PHP 事项
class="php" name="code">$a = $b = $c = 0;
$a & $b = 1;
$b | $c = 1

?问a,b,c最终为多少?

?

当看到这题时,我犯了一个低级错误,误 以为位运算符会改变变量的值。所以得出结果是1?1 0

但是位运算符是不会改变变量的值的,例如:

$a=1;$b=2;
$a&$b;

?这样a,b的值不会有任何改变

?

再看到上面那题,先弄清一下运算符的优先级

运算符优先级 结合方向 运算符 附加信息 非结合 clone new clonenew 左 [ function">array() 非结合 ++ -- 递增/递减运算符 非结合 ~ - (int) (float) (string) (array) (object) (bool) @ 类型 非结合 instanceof 类型 右结合 ! 逻辑caozuofu.html" target="_blank">操作符 左 * / % 算术运算符 左 + - . 算术运算符字符串运算符 左 << >> 位运算符 非结合 < <= > >= <> 比较运算符 非结合 == != === !== 比较运算符 左 & 位运算符引用 左 ^ 位运算符 左 | 位运算符 左 && 逻辑运算符 左 || 逻辑运算符 左 ? : 三元运算符 右 = += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符 左 and 逻辑运算符 左 xor 逻辑运算符 左 or 逻辑运算符 左 , 多处用到

?由此得知位运算符的优先级是大于赋值运算符的

由此上面的代码亦可以写为

$a = $b = $c = 0;
$a&$b;
$b = 1;
$b | $c;
$c = 1;

?结果很明显a为0,b为1,c为1

位运算符 例子 名称 结果 $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。 $a | $b Or(按位或) 将把 $a 或者 $b 中为 1 的位设为 1。 $a ^ $b Xor(按位异或) 将把 $a 和 $b 中不同的位设为 1。 ~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。 $a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。 $a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
发表评论
用户名: 匿名