PHP运算符

时间:2018-11-15 13:15:38  来源:igfitidea点击:

在本教程中,我们将学习如何使用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