PHP基础3-运算符与表达式
PHP的运算符与C语言基本相同,也引进15级运算符,常用的运算符
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | () | 圆括号 | |
2 | ++,- -,-,! | 自增、自减、负号、逻辑非 | 非结合 |
3 | *,/,% | 乘、除、取余 | 从左向右 |
4 | +,- | 加、减 | 从左向右 |
5 | <<,>> | 左移、右移 | 从左向右 |
6 | >,>=,<,<= | 大于、大于等于、小于、小于等于 | 非结合 |
7 | ==,!= | 等于、不等于 | 非结合 |
8 | & | 按位与 | 从左向右 |
9 | ^ | 按位异或 | 从左向右 |
10 | | | 按位或 | 从左向右 |
11 | && | 逻辑与 | 从左向右 |
12 | || | 逻辑或 | 从左向右 |
13 | ?: | 条件运算符 | 从左向右 |
14 | =,+=,-=,*=,/=,%= | 赋值运算符 | 从左向右 |
15 | @ | 错误控制运算符 | 非结合 |
算术运算符
(1)双目运算符:+,-,*,/,%
当“/”两侧为整数时,结果为整数或浮点数;当“%”两侧为浮点数时,舍去小数点部分取整,结果为整数。
(2)单目运算符:++(自增)- -(自减)
++,- -只能作用在变量上,不能作用在常量和表达式上。
$i++,++$i单独成为语句时,均等价于$i=$i+1
$i++,++$i的不同之处:$i++是先返回$i,再使$i的值加1;++$i则是先使$i的值加1,再返回$i。
1
2
3
4
5
6
7
8
$i = 3;
$j = $i++;
echo "$i,$j"."<br>"; //输出:4,3
$i = 3;
$j = ++$i;
echo "$i,$j"; //输出:4,4
算术运算符的优先级
运算符 | 优先级 | 结合性 |
---|---|---|
++,- - | 2级 | 非结合 |
*,/,% | 3级 | 从左向右 |
+,- | 4级 | 从左向右 |
由算术运算符组成的表达式称为算术表达式,算术表达式的值是一个整数或浮点数。
关系运算符
关系运算符的优先级
运算符 | 优先级 | 结合性 |
---|---|---|
>,>=,<,<= | 6级 | 非结合 |
==,!= | 7级 | 非结合 |
关系运算符表示对操作数的比较运算,因此也称为比较运算符,由关系运算符组成的表达式称为关系表达式。关系表达式的值为true或false,例如7>=7的值为true。
注:如果数值和字符串进行比较,则字符串先被转换为数值再进行比较;如果两个数字字符串进行比较,则它们都会被当成数值来比较。
1 |
|
逻辑运算符
逻辑运算符的优先级
运算符 | 优先级 | 栗子 | 解释 |
---|---|---|---|
! | 2级 | !&x | |
&& | 11级 | $x&&$y | 只要$x,$y有一个为假,结果就为假 |
|| | 12级 | $x||$y | 只要$x,$y有一个为真,结果就为真 |
参加逻辑运算的操作数必须为逻辑值。由逻辑运算符组成的表达式称为逻辑表达式。逻辑表达式值为true或false,例如:2+3>7&&7<8是一个逻辑表达式,它的值为false。若一个表达式含有各类运算符,则表达式的类型取决于级别最低的运算符的类型。
条件运算符
PHP中唯一的一个三目运算符就是条件运算符(?:),由条件运算符组成的表达式称为条件表达式,格式为:
操作数1?操作数2:操作数3
其中“操作数1”的值必须为逻辑值,否则将出现编译错误,进行条件运算时,首先判断“操作数1”是否为真(true)
如果“操作数1”为真,则条件表达式的值为“操作数2”的值;如果“操作数1”的值为假,则条件表达式的值为“操作数3”的值
例如:$a=3,$b=5,则$a>$b?$a:$b的值为5。
注:条件表达式具有“右结合性”的意思是,操作从右向左组合,例如:$a?$b:$c?$d:$e表达式的计算与$a?$b:($c?$d:$e)相同。
赋值运算符
(1)赋值运算符
赋值运算符包括=、+=、-=、*=、/=、%=,它们的优先级为14级,结合性是从左向右,例如:$a=$b=$c=4;语句表示$a,$b,$c的值均为4。
复合赋值运算符
赋值运算符 | 举 例 | 含 义 |
---|---|---|
+= | $a+=$b | $a=$a+$b |
-= | $a-=$b | $a=$a-$b |
*= | $a*=$b | $a=$a*$b |
/= | $a/=$b | $a=$a/$b |
%= | $a%=$b | $a=$a%$b |
(2)赋值表达式
赋值表达式的值等于被赋值的变量的值。例如:表达式$a=5的值为5。
错误控制运算符
PHP支持错误控制运算符@,将其放置在PHP表达式之前,该表达式可能产生的任何错误信息都将被忽略。
注:当要使用的变量名的值为NULL时,就必须在变量名前面加@。
小结:PHP常用运算符可分为6类:算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符、错误控制运算符