【PHP入门】2.1-运算符

发布时间:2023年12月18日

-运算符-

运算符:operator,是一种将数据进行运算的特殊符号,在PHP中一共有十种运算符之多。

2.1.1赋值运算符

赋值运算:符号是“=”,表示将右边的结果(可以是变量、数据、常量和其它运算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值给左侧的变量(常量)。

2.1.2算术运算符

算术运算:基本算术操作

+ //执行数据累加
- //数据相减
* //键盘上没有乘法符号,使用*代替,两个数相乘
/ //正斜杠代替,表示两个数相除
% //取余(模)运算,两个数(整数)相除,保留余数

在进行除法运算或者取余运算的时候,对应的除数(第二个数)不能为0

2.1-1

2.1.3比较运算符

比较运算:比较两个数据的大小,或者两个内容是否相同,返回的结果都是布尔类型:满足返回true,不满足返回false

>   //左边大于右边,返回结果true
\>= //左边大于等于右边
<   //左边小于右边
<=  //左边小于或者等于右边
==  //左边的与右边的相同(大小相同)

2.1-2

!=  //左边的与右边的不同(大小不同)
=== //全等于,左边与右边相同:大小以及数据的类型都要相同

2.1-4

!== //不全等于,只有大小或者类型不同

2.1.4逻辑运算符

逻辑运算:针对不同的结果进行匹配。满足条件返回true,不满足返回false

&& //逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
|| //逻辑或,左边的条件或者右边的条件只要有一个满足即可//逻辑非,对已有条件进行取反,本身为true,取反结果就是false

2.1-5

逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已经满足条件了,那么就不会运行逻辑运算符后面的表达式:在书写代码的时候,尽量将出现概率最高的(能够直接判断出结果)的表达式放到第一位

2.1.5连接运算符

连接运算:是PHP中将多个字符串拼接的一种符号

. //将两个字符串连接到一起
.= // 复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边变量
A .= b ===== A = A . b

2.1-6

2.1.6错误抑制符

在PHP中有一些错误可以提前预知,但是这些错误可能无法避免,但是又比希望报错给用户看,可以使用错误抑制符处理。

@  //在可能出错的表达式前面使用@符号即可

2.1-7

错误抑制符通常在生产环境(上线)会用到,在开发的时候不会用:系统本身最好没有任何错误。

2.1.7三目运算符

三目运算:有三个表达式参与的运算(简单的的分支结构缩写)

语法格式:

表达式1 ? 表达式2 :表达式3;

运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;

注意:如果表达式本身比较复杂,建议使用括号包起来。2.1-8

三目运算可以进行复合三目运算:三目运算中的表达式2和3都是可以是另外一个三目运算。

表达式1 ? (表达式2 ? 表达式4 : 表达式5) : (表达式3 ? 表达式5 : 表达式6);

2.1.8自操作运算符

自操作:自己操作自己的运算符

++ //在原来的值上+1
-- //在原来的值上-1
 
$a = 1;
$a++; // $a = $a + 1;

//在PHP中自操作符是可以放到变量前或者后:前置自操作和后置自操作

$a = 1;
$a++;
++$a;  //前置或者后置如果本身只有自操作,不参与其他运算(自操作同时),那么效果是一样的。但是如果自操作同时还参与别的运算,那么效果就不一样

2.1-9

$a = 1;
$b = $a++;    //$a++会导致$a = $a + 1; $a = 2;,上面的$b = 1
$c =++$a;     //++$a会导致$a = $a + 1; $a = 2;,$c = 2;

后置自操作:先把自己所保存的值留下来,然后改变自己,自己给别人的值是原来的值;

前置自操作:先把自己改变,然后把改变后的值给别人。

2.1-10

衍生符号:类似自操作

+= //左边的结果与右边结果相加,然后赋值给左边
-= //左边的减去右边的结果,然后复制给左边
*= //乘法操作
/= //除法操作
%= //模操作
   //注意:右边是一个整体 $a += $b; =è $a = $a + ($b);

2.1-11

如果进行除法或者取余运算,那么要考虑右边表达式的结果是否为0(为0出错)

2.1.9计算机码

计算机码:计算机在实际存储数据的时候,采用的编码规则(二进制规则)

计算机码:原码、反码和补码,数值本身最左边一位是用来充当符号位:正数为0,负数为1

原码:数据本身从十进制转换成二进制得到的结果

正数:左边符号位为0(正数的原码、反码和补码就是原码本身)

负数:左边符号位为1

反码:针对负数,符号位不变,其他位取反

补码:针对负数,反码+1

系统中存在两个0:+0和-0

+0: 00000000

-0: 10000000 原码

取反 11111111

补码 00000000

2.1-12

2.1.10位运算符

位运算:取出计算机中最小的单位(位bit)进行运算

& //按位与,两个位都为1,结果为1,否则为0
| //按位或,两个有一个为1,结果为1

2.1-13

注意:
1、 系统进行任何位运算的时候都是使用的补码
2、 运算结束之后都必须转换成原码才是最终要显示的数据

~:按位非,一个位如果为1则变成0,否则反之

2.1-14

^   //按位异或,两个相同则为0,不同则为1
<<  //按位左移,整个位(32位),向左移动一位,右边补0
\>> //按位右移,整个位向右移动一位,左边补符号位对应内容(正数补0,负数补1)

2.1-15

按位左移:乘以2的操作

按位右移:除以2的操作(不完全正确):整数除2会出现小数

2.1.11运算符优先级

运算符优先级:在多种运算符同时存在的时候,如何结合运算

2.1-16

文章来源:https://blog.csdn.net/qq_22406677/article/details/135070515
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。