`

php位运算符注意事项

    博客分类:
  • php
阅读更多
$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
[ array()
非结合 ++ -- 递增/递减运算符
非结合 ~ - (int) (float) (string) (array) (object) (bool) @ 类型
非结合 instanceof 类型
右结合 ! 逻辑操作符
* / % 算术运算符
+ - . 算术运算符字符串运算符
<< >> 位运算符
非结合 < <= > >= <> 比较运算符
非结合 == != === !== 比较运算符
& 位运算符引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符
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”)。

 

还有一个优级的例外:

if($a=100 && $b=200)
var_dump($a,$b);

 bool(true) int(200)

参考:http://www.laruence.com/2010/07/26/1668.html

分享到:
评论

相关推荐

    PHP 匿名函数与注意事项详细介绍

    PHP 匿名函数与注意事项 PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar ...

    详解PHP匿名函数与注意事项

    php5.3不但引进了匿名函数还有更多更好多新的特性了,下面我们一起来了解一下PHP匿名函数与注意事项,具体内容如下 PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...

    (全)传智播客PHP就业班视频完整课程

    函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...

    史上最全传智播客PHP就业班视频课,8月份视频

    函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...

    php网络开发完全手册

    7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 119 8.2 常用的数组操作 120 8.2.1 数组的创建与调用 120 ...

    MySQL中文参考手册

    + 4.11.5 Linux (所有的Linux版本)注意事项 # 4.11.5.1 Linux-x86 注意事项 # 4.11.5.2 RedHat 5.0 注意事项 # 4.11.5.3 RedHat 5.1 注意事项 # 4.11.5.4 Linux-SPARC 注意事项 # 4.11.5.5 Linux-Alpha 注意...

    MYSQL

    x86 注意事项 4.11.5.2 RedHat 5.0 注意事项 4.11.5.3 RedHat 5.1 注意事项 4.11.5.4 Linux-SPARC 注意事项 4.11.5.5 Linux-Alpha 注意事项 4.11.5.6 MkLinux 注意事项 4.11.5.7 Qube2 ...

    MySQL中文参考手册.chm

    x86 注意事项 4.11.5.2 RedHat 5.0 注意事项 4.11.5.3 RedHat 5.1 注意事项 4.11.5.4 Linux-SPARC 注意事项 4.11.5.5 Linux-Alpha 注意事项 4.11.5.6 MkLinux 注意事项 4.11.5.7 Qube...

    LINUX网站建设技术指南

    10.1.4 日常安全注意事项 10.1.5 服务器被侵入后的处理 10.2 防火墙、IP伪装和代理服务器 10.2.1 什么是防火墙 10.2.2 防火墙分类 10.2.3 Linux防火墙实现策略 第11章 网站建设实例 11.1 Apache、PHP、MySQL简介 ...

    精通正则表达式~~~

    正则表达式的注意事项和处理方式... 93 集成式处理... 94 程序式处理和面向对象式处理... 95 查找和替换... 98 其他语言中的查找和替换... 100 注意事项和处理方式:小结... 101 字符串,字符编码和匹配模式....

Global site tag (gtag.js) - Google Analytics