PHP 零基础入门笔记(5):PHP 运算符 operator

网友投稿 528 2022-05-30

PHP 运算符 operator

赋值运算符

= 将右边的结果(变量,数据,常量)保存到内存的某个位置,然后将位置的内存地址赋值给左侧的变量

算术运算符

加 +

减 -

乘 *

除 /

取余 %

注意:除法和取余的第二个参数不能为 0

// 连贯赋值运算 $a = $b = 10;

1

2

比较运算符

比较两个数据,返回 bool 值

> 大于 >= 大于等于 < 小于 <= 小于等于 == 相等,值相等 != 不相等 === 全等,数据类型和数据值都相等 !== 全不相等

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

9

10

逻辑运算符

返回 bool 值

&& 逻辑与 两边都为true || 逻辑或 一边为true ! 逻辑非 取反

1

2

3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

逻辑与和逻辑非,又称为短路运算,如果第一个表达式满足条件,就不会判断第二个条件

一般把频率出现高(能够直接判断出结果)的放在第一位

连接运算符

PHP 中将多个字符串拼接在一起

. 将两个字符串连接到一起

.= 复合运算,两个字符连接起来,并赋值给左边变量

1

2

3

4

5

6

7

8

9

10

11

12

13

错误抑制符

@ 不显示报错内容

1

2

3

4

通常在生产环境使用

三目运算符

有三个表达式参与运算,简单的分支结构

语法格式

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

1

如果表达式 1 为 ture, 执行表达式 2, 否则执行表达式 3

10 ? '1大于10': '1小于10'; // 1小于10

1

2

3

4

复合三目运算符

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

1

自操作运算符

++ 原来的值 +1

-- 原来的值 -1

$a = 1; $a++; // $a = $a + 1;

1

2

前置操作和后置操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

衍生符号,类似自操作

+= $a += $b; <==> $a = $a + $b; -= *= /= %=

1

2

3

4

5

需要注意除法或取余,右边的操作数为 0 的情况

计算机码

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

数值本身最左边第一位是符号位,正数 0,负数 1

原码、反码、补码

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

PHP 零基础入门笔记(5):PHP 运算符 operator

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

负数:左边符号位为 1

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

补码 针对负数,反码+1

系统中存在两个 0

+0 0000 0000 -0 1000 0000 原码 取反 1111 1111 补码 0000 0000

1

2

3

4

+5 0000 0101(原码、反码、补码都是 ) -5 原码 1000 0101 反码 1111 1010 符号位不变,其他位取反 补码 1111 1011 反码+1

1

2

3

4

5

位运算符

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

& 按位与 两位都为1,结果为1,否则为0 | 按位或 有一个为1,结果为1 ~ 按位非 如果为1,结果为0;如果为0,结果为1 ^ 按位异或 两位相同则为0,不同为1 << 按位左移 所有位向左移动一位,右边补0,相当于乘以2 >> 按位右移 所有为向右移动一位,左边补符号位对应内容(正数补0,负数补1),相当于除以2

1

2

3

4

5

6

注意:

系统进行任何位运算的时候使用的都是补码

运算结束之后都必须转换成原码才是最终显示的数据

按位与

1111 1010(反码) // -> 1111 1011(补码) // 5 0000 0101 // -5 1111 1011(补码) // & 0000 0001 正数 // 判断符号位:0表示正数(原码),1表示负数(补码)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

按位非运算

1111 1010(反码) // -> 1111 1011(补码) // -5 1111 1011(补码) // ~ 0000 0100 正数 // 4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

按位右移

>2); // int(-2) // 计算过程: // -5 1000 0101(原码) // -> 1111 1010(反码) // -> 1111 1011(补码) // -5 1111 1011(补码) // >>2 --11 1110 // 1111 1110 运算结果,左边补符号位(符号位为0,是负数补码) // -1 1111 1101 反码 // 1000 0010 原码 // -2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

运算符的优先级(由高到低)

文档:https://www.php.net/manual/zh/language.operators.precedence.php

PHP 面向对象编程

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringSecurity动态加载用户角色权限实现登录及鉴权
下一篇:滚雪球学 Python 第三轮,Python Web 之 Django 的世界
相关文章