$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 | clone 和 new |
左 | [ | 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
相关推荐
5. **注意事项**: - 位运算通常只适用于整数类型,对于浮点数或其他非整数类型的数据,必须先进行转换。 - 在进行位运算时,确保了解操作数的大小,因为不同位数的整数可能会导致预期之外的结果。 - 在进行位移...
综上所述,理解PHP中这些常见的编程注意事项对于编写高质量的PHP代码至关重要。在开发过程中,应当注意运算符的优先级、遵循变量命名的大小写规则,并正确处理序列化数据,以减少潜在的错误和问题。同时,时刻关注...
PHP 匿名函数与注意事项 PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar ...
在PHP编程中,需要注意一些关键点以避免潜在的错误和陷阱。以下是一些重要的注意事项: 1. **三元运算符的优先级问题**: ...通过了解并遵循这些注意事项,PHP开发者可以编写更安全、更可靠的代码。
PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,能够快速开发...在实际开发中,开发者应当根据具体需要选择合适的技术实现,同时注意理解和掌握匿名函数的使用规则和注意事项,避免在项目中出现不必要的问题。
手册中对每种类型的特点、用法和注意事项都有详细说明。 **3. 类与对象** PHP5增强了面向对象编程(OOP)的支持,包括类的定义、继承、封装、多态等概念。手册详细解释了如何创建和使用类,以及如何通过魔术方法和...
3. Session与Cookie:掌握用户状态管理,了解Session和Cookie的区别与应用场景,以及安全注意事项。 4. PHP模板引擎:如Smarty等,如何使用模板引擎提高代码可维护性和分离视图层。 5. PHP框架应用:可能涉及当时...
此外,孙仲岳讲师可能会分享一些接案时的技巧和注意事项,帮助你更好地理解和应对客户需求,提升你的专业素养。 总的来说,"一周学会PHP接案"是一个全面且实用的教程,它将带你从零基础快速进入PHP开发领域,并为...
- 这个文件通常包含有关压缩包的使用说明,包括如何运行程序、注意事项、常见问题解答等,用户应详细阅读以了解如何正确使用这个便携版PHP环境。 5. **x64 文件夹** - 此文件夹可能包含了64位版本的PHP核心文件和...
### 注意事项 由于技术限制,本书部分内容可能存在OCR扫描错误,读者在阅读过程中应结合上下文理解,并注意修正可能的错别字或漏字。对于遇到的任何技术疑问,可以查阅官方文档,或通过互联网搜索、参与技术社区的...
函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...
- **系统实施和测试:**涵盖编码阶段的注意事项,如代码规范、错误处理和异常管理,以及单元测试、集成测试和系统测试的方法。 - **实验:**通过实际项目,让学生经历从需求分析到系统上线的全过程,提升综合运用所...
函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用...
在提供的文件列表中,`说明_Readme.html`通常包含有关源码的详细信息,如安装指南、使用方法和注意事项。`EPWebV1.02`可能是PHP建站源码的一个具体版本,它可能是一个完整的网站系统,包括用户管理、内容发布、评论...
- **飞翔下载说明.txt**:可能包含下载这些电子书的注意事项或使用建议。 - **安装必看.txt**:可能提供了安装PHP环境或者阅读工具的必备提示。 - **飞翔下载.url**:一个快捷方式,指向下载更多资源的网站。 通过...