【PHP基础】运算符(六)

时间:2021-6-12 作者:qvyue

运算符

含义:就是对数据进行某种所需要的运算的语法符号

按参与运算的数据的个数来分类

单目运算符
只需要一个数据– 但必须是变量
双目运算符
需要两个数据– 可以是变量,也可以直接的数据本身
三目运算符
需要三个数据才能运算,也称”三元运算符”,只有一个三元运算符

按功能分类

赋值运算符
=
算数运算符
+ – * / %
连接运算符
.
自赋值运算符
+= -= *= /= %= .=
自操作运算符
++ —
比较运算符
> >=
逻辑运算符
&&(与) ||(或) !(非)
条件运算符
数据1 ? 数据2 : 数据3
位运算符
& | ~
其他
@,错误抑制符
(),提升运算的优先级

赋值运算符

概念:就是将等号(=) 右边的数据(可能是运算结果数据)赋值给左边的变量

算数运算符

概念:针对数字进行的算数计算
%:对整数数字进行”取余操作” — 如果不是整数,会先自动转换为整数之后再进行取余 直接取出小数部分

连接运算符

概念:就是字符串的连接 能够将前后字符连接起来

自赋值运算符

概念
针对数字,包括:+= -= *= /= %=
针对字符串,只有一个:.=
形式
变量 += 数据; 相当于:变量 = $变量 + 数据;

自操作(自增自减)运算符

概念
针对数字,只有2个:++ —
属于单目运算符,即只要一个变量就可以进行运算
形式
变量++;// 对该数据+1变量–;// 对该数据-1
++变量;// 对该数据+1 --变量;// 对该数据-1
++讨论
表示对该变量进行”自加1″操作 即该变量中的数据加1
前自加:先自加,后取值
后自加:先取值,后自加
总结
1.前自加 后自加 对变量本身的结果都是加1 无区别
2.但前自加 后自加如果跟别的运算符一起运行 此时区别为:
前自加:先自加 后取值
后自加:先取值 后自加

比较运算符

含义
是针对数字的大小进行比较的运算
如果不是数字 会自动转换为数字
所有比较运算符 运算的结果还有两个可能:true false
等于(==)和全等于(===)的区别
通常 等于(==)也会用”模糊相等”和”松散相等”的说法
两个数据”基本相等”(类型可能会发生自动转换) 就算是相等
通常 全等于(===)就是完全相等
只有两个数据的数据类型一样 并且其值也一样的时候 才是全等

逻辑运算符

含义
针对”布尔值”进行的运算 只有三个:&&(与) ||(或) !(非)
逻辑与(&&)
含义
表示两个条件的真假结果是否同时为真的共同作用结果
运算结果:只有两个条件都为真的时候 结果才是真true
可见:逻辑与运算的结果 只有两个是真 才是真
逻辑或(||)
含义
表示两个条件的真假结果的是否存在”真”的情况的共同作用结果
运算规则:只要有任意一个条件为真 结果就是真
逻辑非(!)
含义
就是对一个布尔值进行”取反”操作
逻辑运算的短路规则
短路的基本
就是对于”逻辑与”或”逻辑或”这两种运算符 他们可能只进行左侧的逻辑判断之后 就立即终端后续的判断 而得出整个逻辑运算符的运算结果
结论
我们应该将我们可能发生的短路运算的逻辑判断的前后判断语句 做如下调整
相对简单的运算放在前面 相对复杂的运算放在后面

位运算符(了解即可)

含义

针对整数进行的二进制级别的运算
基本位运算符包括:按位(&),按位或(|),按位非(!),按位异或(^)

位运算符基本运算规则

只针对二进制的0和1这两个数据的基本位运算规则
按位与(&)运算规则
只有两个都是1 按位与运算的结果才是1
按位或(|)运算规则
只有两个都是0 按位或运算的结果才是0
按位非(!)运算规则
~1都为0 ~0都为1
按位异或(^)运算规则
相同为0 不同为1

整数的按位与(&)运算

含义

针对整数的二进制进行的位运算结果
将两个整数的二进制值的每一个对应位上的二进制数字进行对应的按位与运算

按位左移运算

$v1 = 8
总结:将一个整数左移n位 就是相当于将该数乘以2的n次方

错误抑制符(@)

含义

在一个表达式出现错误的时候 可以将错误”隐藏”起来(不输出)
通常 该符号 用于在实际运行环境中的一些条件非我们(程序员)所能控制的情形。如果出现该情形并报错 则我们可以抑制该错误的显示

条件运算符

只有一个条件运算符,形式为:达式1 ? 表达式2 : 表达式3

含义

如果表达式1为true 则运算的结果值为表达式2 否则为表达式3

运算符的优先级

1.时刻意识到 运算符有优先级问题
2.小括号可以改变运算的顺序(括号最优先)
3.先乘除(以及取余)后加减
4.大致有如此优先级规则:算数运算 > 比较运算 > 逻辑运算
5.赋值运算符的优先级通常是最低

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。