PHP运算符
在本教程中,我们将学习如何使用PHP操作符(运算符),以便可以使用它们来操作脚本中的数据。
运算符接受一个或多个值(称为操作数),并对它们执行操作,例如将它们相加。
PHP借用了Perl和C的大部分运算符。以下是PHP中最常用的运算符:
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 递增/递减运算符
- 逻辑运算符
- 连接运算符
算术运算符
算术运算符需要操作数值。非数值将会被自动转换为数值。以下是算术运算符列表:
运算符 | 说明 |
---|---|
加法(+) | 返回两个操作数的和 |
减法(-) | 返回两个操作数之间的差 |
乘法(*) | 返回两个操作数的乘积 |
除法(/) | 返回两个操作数的商。 |
取模(%) | 返回第一个操作数除以第二个操作数的余数。两个操作数都是整数。 |
下面的例子演示了PHP算术运算符:
<?php $x = 20; $y = 10; // 演示了加法、减法和乘法运算符 echo $x + $y . '<br/>'; // 30 echo $x - $y . '<br/>'; // 10 echo $x * $y . '<br/>'; // 200 // 演示除法运算符 $z = $x / $y; echo gettype($z) . '<br/>'; // 数字 $z = $y / $x; echo gettype($z) . '<br/>'; // 双精度数值 // 演示取模运算 $y = 15; echo $x % $y . '<br/>'; // 5
比较运算符
PHP提供比较运算符来比较两个操作数。
比较运算符返回一个布尔值,true或false。
以下是比较运算符的列表:
比较运算符 | 名称说明 |
---|---|
== | 相等 |
(===) | 恒等式 |
!=<> | 不等 |
!=== | 不全等 |
> | 大于 |
>= | 大于或等于 |
< | 小于 |
<= | 小于或等于 |
逻辑运算符
逻辑运算符帮助您构建逻辑表达式。逻辑运算符将其操作数视为布尔值并返回一个布尔值。
PHP提供以下逻辑运算符:
运算符 | 说明 |
---|---|
&&, and | 逻辑与 |
, or | |
xor | 异或 |
! | 取反 |
位运算符
按位操作符对操作数的二进制表示形式执行操作。
下面是PHP中的按位运算符:
运算符 | 名称 | 示例 | 说明 |
---|---|---|---|
& | 按位与 | $x & $y | 如果两位都是1,则结果中对应的位是1;否则,对应的位是0 |
| | 按位或 | $x | $y | 如果两个位都为0,则结果中对应的位为0;否则,对应的位是1 |
^ | 按位异或 | $x ^ $y | 如果$x和$y中有一位为1,而不是两位都为1,则结果中的对应位为1;否则,对应的位是0 |
~ | 按位取反 | ~ $x | 在$x操作数中,将为1的位改为0,并将0改为1 |
<< | 左移 | $x << $y | 对$x进行左移$y位,右边补零 |
>> | 右移 | $x >> $y | $x右移$y指定的位数,左边补符号位(即和原来的最左一位相同) |
递增/递减运算符
递增(++)和递减(-)操作符为您提供了一种将变量的值增加或减少1的快速方法。
下表说明了PHP中的递增和递减运算符:
示例 | 名称 | 返回值 | 对$a的影响 |
---|---|---|---|
++$a | 预增量 | $a+1 | 将$a递增1,然后返回$a |
$a++ | 算后增量 | $a | 返回$a,然后将$a递增1 |
--$a | 预减量 | $a-1 | 将$a减量1,然后返回$a |
$a—— | 后递减 | $a | 返回$a,然后将$a递减1 |
连接运算符
连接运算符(.)允许您将两个字符串合并为一个字符串。
它将第二个字符串附加到第一个字符串并返回组合后的字符串。
让我们看看下面的例子:
<?php $str = '这是一个 ' . ' 字符串 #' . 10; echo $str;
赋值运算符
赋值运算符(=)为变量赋值并返回值。左侧的操作数始终是变量,而右侧的操作数可以是文本值、变量、表达式或函数调用的返回值。
让我们看一下下面的例子:
<?php $x = 10; $y = $x; $z = ($x = 20); // $z = 20
除了基本的赋值运算符(=),PHP还提供了一些赋值运算符:
赋值运算符 | 说明 | 示例 | 等同于 |
---|---|---|---|
+= | 相加后赋值 | $x+=y | $x = $x+$y |
-= | 相减后赋值 | $x-=y | $x = $x+$y |
*= | 相乘后赋值 | $x*=y | $x = $x*$y |
/= | 相除后赋值 | $x/=y | $x = $x/$y |
%= | 取模后赋值 | $x%=y | $x = $x%$y |
^= | 执行异或操作后赋值 | $x^=y | $x = $x^$y |
&= | 执行按位与后赋值 | $x&=y | $x = $x&$y |
|= | 执行按位或后赋值 | $x|=y | $x = $x|$y |
.= | 连接字符串后赋值 | $x.=y | $x = $x.$y |
PHP运算符优先级
运算符的优先级决定了在表达式中计算运算符的顺序。
每个运算符都有一个优先级。有些运算符具有相等的优先级,比如,加号(+)和减号(-)的优先级相等,但是有些运算符的优先级高于其他运算符,例如,乘法运算符(*)的优先级高于加号(+)和减号(-)运算符的优先级。
让我们看个例子:
<?php echo 4 + 5 * 3; // 19
因为乘法运算符(*)的优先级高于加法运算符(+)的优先级,所以PHP首先计算乘法运算符(*) 5*3,然后再计算加法运算符(+)4+15。
可以将表达式放在括号()中,强制按指定顺序计算表达式,例如:
<?php echo (4 + 5) * 3; // 27