PHP中的运算符包括算数运算符、字符串运算符、赋值运算符、位运算符、逻辑运算符、比较运算符、递增或递减运算符、错误控制运算符。
一、算数运算符:
1、加(+) 减(-) 乘(*) 除(/) 求余(%) 递增(++) 递减(--)
2、求余时,如果被除数是负数,则结果也是负数。
3、递增/减分为前置和后置两种
二、字符串运算符:
1、字符串运算符只有一个:".",作用是拼接两个字符串成一个新的字符串
2、PHP中"+"运算符只能作为赋值运算符,不能用作字符串运算符
使用+时,如果两边是字符型则自动转换为整型,如果是字母,则输出为0,如果是以字符开头的字符串,则会截取字符串头部的数字,再进行运算。
三、赋值运算符
1、赋值(=) 加(+=) 减(-=) 乘(*=) 除(/) 求余(%=) 拼接字符串(.=)
四、位运算符:
1、对二进制位从低到高对齐后进行运算
2、按位于($) 按位或(|) 按位异或(^) 按位取反(~) 向左移位(<<) 向右移位(>>)
五、逻辑运算符
1、逻辑与(&& and) 逻辑或(|| or) 逻辑异或(xor) 逻辑非(!)\
2、属于同一逻辑结构的两个运算符有不同的优先级
六、比较运算符
1、小于(<) 大于(>) 小于等于(<=) 大于等于(>=) 相等(==) 不等(!=) 恒等(===) 非恒等(!==)
2、恒等(===)表示二者数值和类型都相等,非恒等(!==)表示二者数值或者类型不相等
<?php $str = '100' ; echo 'str是一个字符串,值为:' . $str ; echo '<p>str==100:' ; var_dump( $str ==100); echo '<p>str==true:' ; var_dump( $str ==true); echo '<p>str!=null:' ; var_dump( $str !=null); echo '<p>str===100:' ; var_dump( $str ===100); echo '<p>str===true:' ; var_dump( $str ===true); echo '<p>10/2.0!==5:' ; var_dump(10/2.0!==5); ?> |
运行结果为:
str是一个字符串,值为:100
str==100:bool(true)
str==true:bool(true)
str!=null:bool(true)
str===100:bool(false)
str===true:bool(false)
10/2.0!==5:bool(true)
七、错误控制运算符:@
1、@:对程序中出现错误的表达式进行操作,进而对错误信息进行屏蔽
2、使用方法是在表达式前加上@
3、@只是对错误信息进行屏蔽,并没有真正解决错误
4、使用它不是解决问题的根本方法,因而不推荐使用
<?php $str =5/0; echo $str ; ?> |
运行结果:Warning: Division by zero in C:\AppServ\www\test\php22.php on line 14
<?php $str =@(5/0); echo $str ; ?> |
运行结果:错误不显示
八、三元运算符:(?:)
1、也成为三目运算符
2、用于根据一个表达式在另两个表达式中选择一个
3、三元运算符最好放在括号里使用
1234 | <?php $str =100; echo ( $str ==true)?存在str:没有该值; ?> |
运行结果:存在str
九、运算符的优先顺序和结合规则
1、PHP的运算符在运算中遵循的规则:优先级高的先执行,优先级低的后执行,同一优先级从左到右进行,也可以使用小括号,小括号内的运算最先进行。
2、可以多使用括号来减少逻辑错误的出现的概率
3、运算符的优先级表
优先级别 | 运算符 |
1 | or,and,xor |
2 | 赋值运算符 |
3 | ||,&& |
4 | |,^ |
5 | &,. |
6 | +,- (递增或递减运算符) |
7 | *,/,% |
8 | <<,>> |
9 | ++,-- |
10 | +,- (正负号运算符) ,!,~ |
11 | ==,!=,<> |
12 | <,<=,>,>= |
13 | ?: |
14 | -> |
15 | => |