PHP 运算符
PHP运算符是一个用于在操作数上执行操作的符号。简单来说,运算符用于在变量或值上执行操作。例如:
$num=10+20;//+ is the operator and 10,20 are operands
在上面的示例中,+ 是二进制+运算符,10和20是操作数,$num是变量。
PHP运算符可以分为以下几种形式:
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 递增/递减运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
- 执行运算符
- 错误控制运算符
我们还可以根据操作数对运算符进行分类。它们可以分为3种形式:
- 一元运算符: 对单个操作数进行操作,例如++,–等。
- 二元运算符: 对两个操作数进行操作,例如二进制+,-,*,/等。
- 三元运算符: 对三个操作数进行操作,例如”?:”。
算术运算符
PHP算术运算符用于对数字值进行常见的算术操作,如加法、减法等。
操作符 | 名称 | 示例 | 解释 |
---|---|---|---|
+ |
加法 | $a + $b |
操作数的和 |
- |
减法 | $a - $b |
操作数的差 |
* |
乘法 | $a * $b |
操作数的积 |
/ |
除法 | $a / $b |
操作数的商 |
% |
取余 | $a % $b |
操作数的余数 |
** |
幂运算 | $a ** $b |
$a 的 $b 次幂 |
PHP 5.6 引入了指数运算符(**
)。
赋值运算符
赋值运算符用于给不同的变量赋值。基本赋值运算符是”=”。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
= |
赋值 | $a = $b |
将右操作数的值赋给左操作数。 |
+= |
加后赋值 | $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 |
位运算符
位运算符用于对操作数执行位级操作。这些运算符允许在整数中评估和操作特定的位。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
& |
与 | $a & $b |
将$a 和$b 中为1的位设置为1,否则设置为0。 |
| |
或(包括或) | $a | $b |
将$a 和$b 中为1的位设置为1。 |
^ |
异或 | $a ^ $b |
将$a 和$b 中为1的位设置为0。 |
~ |
非 | ~$a |
将为1的位设置为0,为0的位设置为1。 |
<< |
左移 | $a << $b |
将操作数$a 的位向左移动$b 步。 |
>> |
右移 | $a >> $b |
将操作数$a 的位向右移动$b 个位置。 |
比较运算符
比较运算符允许比较两个值,如数字或字符串。以下是比较运算符的列表:
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
== |
等于 | $a == $b |
如果 $a 等于 $b ,返回 TRUE |
=== |
全等 | $a === $b |
如果 $a 等于 $b ,并且它们的数据类型相同,返回 TRUE |
!== |
不全等 | $a !== $b |
如果 $a 不等于 $b ,并且它们的数据类型不同,返回 TRUE |
!= |
不等于 | $a != $b |
如果 $a 不等于 $b ,返回 TRUE |
<> |
不等于 | $a <> $b |
如果 $a 不等于 $b ,返回 TRUE |
< |
小于 | $a < $b |
如果 $a 小于 $b ,返回 TRUE |
> |
大于 | $a > $b |
如果 $a 大于 $b ,返回 TRUE |
<= |
小于等于 | $a <= $b |
如果 $a 小于等于 $b ,返回 TRUE |
>= |
大于等于 | $a >= $b |
如果 $a 大于等于 $b ,返回 TRUE |
<=> |
太空船 | $a <=>$b |
如果 $a 小于 $b ,返回 -1 如果 $a 等于 $b ,返回 0 如果 $a 大于 $b ,返回 1 |
自增/自减运算符
自增和自减运算符用于增加和减少变量的值。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
++ |
增量运算符 | ++$a |
将$a 的值加一,然后返回$a 的值 |
$a++ |
返回$a 的值,然后将$a 的值加一 |
||
\-- |
减量运算符 | --$a |
将$a 的值减一,然后返回$a 的值 |
$a-- |
返回$a 的值,然后将$a 的值减一 |
逻辑运算符
逻辑运算符用于对操作数进行位级操作。这些运算符允许在整数中对特定位进行评估和操作。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
and |
与 | $a and $b |
如果$a 和$b 都为真,则返回TRUE |
or |
或 | $a or $b |
如果$a 或$b 为真,则返回TRUE |
xor |
异或 | $a xor $b |
如果$a或$b 有一个为真但不是全为真,则返回TRUE |
! |
非 | ! $a |
如果$a 不为真,则返回TRUE |
&& |
与 | $a && $b |
如果$a 和$b 都为真,则返回TRUE |
|| |
或 | $a || $b |
如果$a 或$b 为真,则返回TRUE |
字符串运算符
字符串运算符用于在字符串上执行操作。在PHP中有两个字符串运算符,如下所示:
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
. |
连接 | $a . $b |
将$a 和$b 连接起来 |
.= |
连接并赋值 | $a .= $b |
首先将$a 和$b 连接起来,然后将连接后的字符串赋值给$a ,例如 $a = $a . $b |
数组运算符
在数组的情况下使用数组运算符。基本上,这些运算符用于比较数组的值。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
+ |
并集 | $a + $y |
$a 和 $b 的并集 |
== |
相等 | $a == $b |
如果 $a 和 $b 有相同的键/值对,则返回 TRUE |
!= |
不相等 | $a != $b |
如果 $a 不等于 $b ,则返回 TRUE |
=== |
相同 | $a === $b |
如果 $a 和 $b 有相同的键/值对,并且类型和顺序也相同,则返回 TRUE |
!== |
非相同 | $a !== $b |
如果 $a 不与 $b 相同,则返回 TRUE |
<> |
不相等 | $a <> $b |
如果 $a 不等于 $b ,则返回 TRUE |
类型运算符
类型运算符 instanceof 用于判断一个对象、其父类和派生类是否属于同一类型。基本上,该运算符确定对象属于哪个特定的类。它在面向对象编程中使用。
<?php
//class declaration
class Developer
{}
class Programmer
{}
//creating an object of type Developer
charu = new Developer();
//testing the type of object
if(charu instanceof Developer)
{
echo "Charu is a developer.";
}
else
{
echo "Charu is a programmer.";
}
echo "</br>";
var_dump(charu instanceof Developer); //It will return true.
var_dump(charu instanceof Programmer); //It will return false.
?>
输出:
Charu is a developer.
bool(true) bool(false)
执行操作符
PHP拥有一个执行操作符 反引号(``) . PHP将反引号的内容作为shell命令执行。执行操作符和 shell_exec() 得到相同的结果。
运算符 | 名称 | 示例 | 解释 |
---|---|---|---|
`` | 反引号 | echo `dir`; | 执行 shell 命令并返回结果。 这里,它将显示当前文件夹中可用的目录。 |
注意:请注意,反引号(``)不是单引号。
错误控制运算符
PHP有一个错误控制运算符,即 at (@)
符号 。当它与一个表达式一起使用时,任何由该表达式可能生成的错误消息都将被忽略。
操作符 | 名称 | 示例 | 解释 |
---|---|---|---|
@ |
at | @file ('non_existent_file') |
故意的文件错误 |
PHP操作符优先级
让我们看一下PHP操作符的优先级和结合性。
运算符 | 附加信息 | 结合性 |
---|---|---|
clone new |
克隆和新建 | 非结合性 |
[ |
array() | 左结合 |
** |
算术 | 右结合 |
++ -- ~ (int) (float) (string) (array) (object) (bool) @ |
增量/减量和类型 | 右结合 |
instanceof |
类型 | 非结合性 |
! |
逻辑(否定) | 右结合 |
* / % |
算术 | 左结合 |
\+ - . |
算术和字符串连接 | 左 |
<< >> |
位运算(移位) | 左 |
< <= > >= |
比较 | 非关联 |
== != === !== <> |
比较 | 非关联 |
& |
位与 | 左 |
^ |
位异或 | 左 |
| |
位或 | 左 |
&& |
逻辑与 | 左 |
|| |
逻辑或 | 左 |
?: |
三元运算 | 左 |
= += -= *= **= /= .= %= &= |= ^= <<= >>= => |
赋值运算符 | 右 |
and |
逻辑运算符 | 左 |
xor |
逻辑运算符 | 左 |
or |
逻辑运算符 | 左 |
, |
多种用途(逗号) | 左 |