编程之路之php运算符详解

一、什么是运算符

简而言之完成特定功能 的符号,称之为运算符。

二、算术运算符

+ 加,取正

-  减,取负

* 乘

 / 除

 % 取余,取模

取余运算只和被除数的正负有关

编程之路之php运算符详解

三、字符串运算符

字符串运算符只有一个,点,用于连接字符串

编程之路之php运算符详解

如果字符串连接的结果不是作为值赋给另一个变量,在直接输出时,可以用下面的方式

编程之路之php运算符详解

用逗号分开要显示的参数,而不是将字符串连接(会产生一个临时变量来存储它)

提高了程序的效率!

四、赋值运算符

PHP使用=等号作为赋值运算符

我们要考虑左边是什么,右边是什么?有一个名词,叫左值,右值

左值必须是一个变量。不能是一个值

右值可以是变量,常量,函数返回值,表达式。。。。

编程之路之php运算符详解

五、自赋值运算符

是一种特殊的格式:

+=   -=   *=   /=   %=   .=

编程之路之php运算符详解

什么是自赋值?

就是变量先参与运算,再把运算的结果赋给自己。

$a += 10; 相当于  $a = $a + 10;          //算术

$str .= ‘php0701’;  $str = $str . ‘php0701’; //字符串

目:参与运算的运算数个数。

比如算术运算需要2个运算数。算术运算符还有一种叫法叫双目运算符。

六、三目运算符

也有叫三元运算符。 ?:

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

运算结果:如果表达式1为true,则结果是表达式2的值。

                  如果表达式1为false,则结果是表达式3的值

编程之路之php运算符详解

经常用于表单提交的参数接收

其实三目表达式可以用if/else代替

七、递增递减运算符

++ --

运算数先加1或减1,然后再把结果赋给自己。

$i++  相当于  $i = $i + 1

递增递减运算符根据所在位置的不同,可分为前置和后置

前置: ++$i  --$i

后置: $i++  $i—

前置的++,会将加1后的数直接赋给自己,变量的值就改变了

后置的++,会先保留自己的值到一个临时变量,然后加1赋给自己,但是参与运算是用的临时的变量

编程之路之php运算符详解

有两个事情要说清楚:

  1. 当++或—不参与运算时,最好使用前置(节省空间占用,提高效率)

For($i=0; $i<10; ++$i)

  1. 当++或—参与运算时,一定要分清楚应该使用前置或后置,因为结果不一样!

八、错误控制运算符

控制错误信息是否显示的运算符:@

编程之路之php运算符详解

使用了这个运算符后,将控制错误信息的输出为不显示。

  1. 目的并不是单纯折屏幕错误,而是想用我们的错误信息代替系统的信息。

编程之路之php运算符详解

  1. 错误无关紧要,不想让它输出

编程之路之php运算符详解

九、比较运算符

>  大于

<  小于

>=  大于等于

<=  小于等于

==  等于  比较的变量相等

!= <>  不等于

===   全等  比较的变量类型都相同

!==   不全等

面试题:等于和全等的区别,试举例

编程之路之php运算符详解

 

十、数组运算符

+  数组相加,两个数组有相同的键值对时,以左边的数组为主,右边多出来的将增加

>  大于

<   小于

>=  大于等于

<=   小于等于

==   等于    两个数组具有相同的键值对

!=   不等于

===   全等   两个数组具有相同的键值对,且顺序类型都相同

!==   不全等

比较的例子

编程之路之php运算符详解

全等和等于的例子

编程之路之php运算符详解

数组相加 的例子

编程之路之php运算符详解

十一、逻辑运算符

通常用于表示两个表达式之间的关系

&&  and  逻辑与

||   or   逻辑或

!    逻辑非

Xor  逻辑异或

逻辑与

表达式1

表达式2

结果

True

True

true

True

False

False

False

True

False

False

false

false

 

逻辑或

表达式1

表达式2

结果

True

True

true

True

False

True

False

True

True

False

false

false

 

逻辑非   !$flag

表达式

结果

True

False

false

true

 

逻辑异或(只有当一个表达式为真的时候,整个结果才为真)

表达式1

表达式2

结果

True

True

false

True

False

True

False

True

true

False

false

false

编程之路之php运算符详解

 

小技巧:短路现象

当我们执行逻辑与、逻辑或的时候,可能会发生短路的现象

编程之路之php运算符详解

编程之路之php运算符详解

 

逻辑或:会当第一个表达式为真时,短路第二个表达式

十二、原码、反码和补码

PHP中,参与位运算的只能是整数。

整数占用4个字节,32个位。最高位是符号位,0代表正数,1代表负数。

 

由于计算机不会做减法,把减法当成加法做

 

原码:就是按最高位是符号位,其它位是数据方式

反码:正数的反码不变,负数的反码除符号位外按位取反

补码:正数的补码还是不变,负数的补码是其反码+1

 

正数的三码一致。三码运算时符号位不参与。

补码=(反码+1)

原码=取反(补码-1)

计算机实际存储和运算都是使用的补码!

十三、位运算符

位运算时,所有位都参与

& 按位与

| 按位或

~ 按位取反

^ 按位异或   两个操作数相同的位,只有一个是2,一个是0时,才为1

<<左移

>>右移

编程之路之php运算符详解

 

1.左移操作

操作数所有的位向左移动,右侧用0来补

当操作数很大时,会相当于溢出

编程之路之php运算符详解

负数在左移操作时,可能会丢失符号位

编程之路之php运算符详解

 

 

左移操作相当于每一次给操作数乘以2,但不绝对

编程之路之php运算符详解

2.右移操作

操作数所有的位向右移动,左边用符号位来补

右移应该不会导致数的符号的改变

右移一次相当于操作数除以2

编程之路之php运算符详解

不是2的倍数时

编程之路之php运算符详解

 

十四、运算符的优先级

当运算数有两个运算符与其与关时,运算符优先级高的先运算。

如果运算符的优先级相同时,看结合方向。

编程之路之php运算符详解

左结合的例子

编程之路之php运算符详解

右结合的例子

编程之路之php运算符详解

一个特例,当左值无法确定时,会调整优先级执行顺序

编程之路之php运算符详解

发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送。

编程之路之php运算符详解