PHP操作符优先级列表及一个优先级带来的灵异事件

2024-01-24 10:40

本文主要是介绍PHP操作符优先级列表及一个优先级带来的灵异事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

操作符的优先级, 原本都没有注意过的, 前段时间, 在论坛看到一个帖子是关于优先级的.

http://topic.csdn.net/u/20110116/03/01cf9bf2-71be-4c2c-9c00-f0a154b4da7e.html

 

今天, 再看文档的过程中, 突然发现一直混用的and, or, xor这几个逻辑运算符和&&, ||这俩逻辑运算符的优先级是不一致的.

经过实验才发现这几个逻辑运算符再某些情况下是不能混用的....希望看过的朋友在碰到类似问题时, 考虑考虑优先级问题, 避免走弯路.

 

文档中描述的优先级顺序是: &&, ||, 接下来是三元操作符和赋值运算符, 接下来是and, xor, or

我的测试代码是这样的:

 

输出结果:

 

很显然, 同样的运算, 使用了看起来同样的运算符, 得到的结果是不一致的

这其中就是运算符的优先级在作怪

对于$c = ($a += $b or 0), 由于+=优先级高于or, 运算式就变成了$c = (($a += $b) or 0), 

而对于$c = ($a += $b || 0), 由于||优先级高于+=, 运算式变为$c = ($a += ($b || 0)).

 

一个"优先级"引发的血案啊.....

值得和我一样粗心的朋友们共勉...

 

 

 

 

PHP操作符优先级如下图, 三列分别是: 结合性, 操作符, 附加说明.

图片来自PHP手册截图.

 

这篇关于PHP操作符优先级列表及一个优先级带来的灵异事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/639436

相关文章

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Python中DataFrame转列表的最全指南

《Python中DataFrame转列表的最全指南》在Python数据分析中,Pandas的DataFrame是最常用的数据结构之一,本文将为你详解5种主流DataFrame转换为列表的方法,大家可以... 目录引言一、基础转换方法解析1. tolist()直接转换法2. values.tolist()矩阵

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式