php运算符
运算符:
算术运算符
+、-、*、/、%、++、--
++自增运算符
前自增 ++$i
运算规则:
先对变更的值自增加1,再使用变量的新值,参与整个式子的运算
示例:
后自增 $i++
先使用变量的值参与整个式子的运算,再对变量的值自增1
示例:
说明:
无论前加加还是后加加,变量的值最终都会加1唯独受影响的是整个式子的值。
--自减运算符
前减减 --$i
运算规则:
先对变更的值自减1,再使用变量的新值,参与整个式子的运算
后减减 $i--
运算规则:
先使用变量的值参与整个式子的运算,再对变量的值自减1
比较运算符(关系运算符)
比较运算符主要是对两个数据进行比较(对一个式了进行计算)
>、<、>=、<=、==、!=、===、!==
==
!=
=== 判断两个操作数的类型与值都相等,则返回true
!== 如果两个操作数的类型与值,只有一个不相等,则返回true
示例:
比较运算符最终的结果:boolean
逻辑运算符
对多个式子进行计算
&&、||、!、and、or
&&逻辑与
真值运算规则:
参与运算的两个操作数,都为true(或者能够转换成布尔true),最终的结果true,否则为false
假值运算规则:
只有一个为false,最终的结果就为false
示例:
根据逻辑与的假值运算规则,当第一个操作数为false时,会将第二个式子短路掉(不再去执行)
||逻辑或
运算规则:
参与运算的两个操作数,只要有一个为true(或能够转换为true),最终的结果为true
示例:
根据逻辑或的真值运算规则:如果第一个操作为true,第二个参数不会参与运算。
示例:
!逻辑非
运算规则:
单目运算符,对操作数取反
and逻辑与 or逻辑或
示例:
三目运算符
语法:
表达式1?表达式2:表达式3;
说明:
当表达式1成功时,执行表达式2,否则执行表达式3,(简单的if...else..结构)
赋值运算符
= 赋值符号:将右侧的值赋值给左侧的变量
+= 在原值的基础上加上新值,再赋值给原来的变量
$i+=10 $i=$i+10
-= 在原值的基础上减去新值,再赋值给原来的变量
*= 在原值的基础上乘新值,再赋值给原来的变量
/= 在原值的基础上除新值,再赋值给原来的变量
%= 在原值的基础上模新值,再赋值给原来的变量
.= 字符串进行拼接,在原字符串的基础,拼上新值,再赋值给原来的变量
字符串运算符
. 字符串拼接运算符
位运算符
位(bit)运算符就是对数据的二进制形式进行运算
&、|、^、~、<<、>>
&按位与
运算规则:
参与运算的两个操作数的二进制形式,相应位(从右向左)上的二进制数,都为1时,对应的结果位为1,否则为0
示例:
|按位或
运算规则:
参与运算的两个操作数的二进制形式,相应位上的二进制数,如果两个都为0,对应的结果位为0,否则为1
示例:
^按位异或
运算规则:
参与运算的两个操作数的二进制形式,相应位上的二进制数,如果不同,则为1,否则为0
示例:
~按位非
单目运算符
运算规则:
对操作数的二进制形式,进行按位取反,1为0,0为1
示例:
<<算术左移
运算规则:
对操作数的二进制形式,符号位不动其余位整体左移n位,左侧溢出位被忽略,右侧不足补0
示例:
>>算术右移
运算规则:
对操作数的二进制形式,符号位不动,其余位整体右移n位,右侧溢出忽略,左侧补符号位
>>>逻辑右移(PHP中不支持)
运算规则:
操作数的二进制位,整体右移(包含符号位),右侧溢出位忽略,左而补0
拓展:
类与对象的关系
类完全可以理解为一个图纸。
对象完全可以理解为一个实物。
原码:二进制数与符号位
IEEE强制规定,在用最高位表示符号位正号用0,负号用1
反码:
正数的反码与原码相同
负数的反码在反码的基础上符号位不变,其余个位取反
补码:
正数的补码与原码相同
负数的补码在反码的基础上,加1
示例:
总结:
对于正数的原码、反码、补码相同
对于负数:
原码高位用1表示
反码在原码的基础最高位不变,其余位取反
补码在反码基础上加1