PHP运算符


在本教程中,我们将学习如何使用PHP操作符(运算符),以便可以使用它们来操作脚本中的数据。

运算符接受一个或多个值(称为操作数),并对它们执行操作,例如将它们相加。

PHP借用了Perl和C的大部分运算符。以下是PHP中最常用的运算符:

  • 算术运算符
  • 赋值运算符
  • 位运算符
  • 比较运算符
  • 递增/递减运算符
  • 逻辑运算符
  • 连接运算符

算术运算符

算术运算符需要操作数值。非数值将会被自动转换为数值。以下是算术运算符列表:

运算符 说明
加法(+) 返回两个操作数的和
减法(-) 返回两个操作数之间的差
乘法(*) 返回两个操作数的乘积
除法(/) 返回两个操作数的商。
取模(%) 返回第一个操作数除以第二个操作数的余数。两个操作数都是整数。

下面的例子演示了PHP算术运算符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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

连接运算符

连接运算符(.)允许您将两个字符串合并为一个字符串。
它将第二个字符串附加到第一个字符串并返回组合后的字符串。

让我们看看下面的例子:

1
2
3
4
<?php
$str = '这是一个 ' . ' 字符串 #' . 10;
echo $str;

赋值运算符

赋值运算符(=)为变量赋值并返回值。左侧的操作数始终是变量,而右侧的操作数可以是文本值、变量、表达式或函数调用的返回值。

让我们看一下下面的例子:

1
2
3
4
5
<?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运算符优先级

运算符的优先级决定了在表达式中计算运算符的顺序。

每个运算符都有一个优先级。有些运算符具有相等的优先级,比如,加号(+)和减号(-)的优先级相等,但是有些运算符的优先级高于其他运算符,例如,乘法运算符(*)的优先级高于加号(+)和减号(-)运算符的优先级。

让我们看个例子:

1
2
3
<?php
 
echo 4 + 5 * 3; // 19

因为乘法运算符(*)的优先级高于加法运算符(+)的优先级,所以PHP首先计算乘法运算符(*) 5*3,然后再计算加法运算符(+)4+15。

可以将表达式放在括号()中,强制按指定顺序计算表达式,例如:

1
2
3
<?php
 
echo (4 + 5) * 3; // 27


原文链接:https://codingdict.com/