PHP 运算符
PHP 运算符
PHP 运算符是一个符号,即用于对操作数执行操作。简单来说,运算符用于对变量或值执行操作。例如:
$num=10+20;//+ is the operator and 10,20 are operands
在上面的例子中,+是二元+运算符,10和20是操作数,$num是变量。
PHP运算符可以分为以下几种形式:
算术运算符
赋值运算符
位运算符
比较运算符
递增/递减运算符
逻辑运算符
字符串运算符
数组运算符
类型运算符
执行运算符
错误控制运算符
我们也可以代表操作数对操作符进行分类。它们可以分为三种形式:
一元运算符: 适用于单个操作数,例如 ++、--等。
二元运算符: 适用于两个操作数,例如二进制 +、-、*、/等。
三元运算符: 适用于三个操作数,例如"?:"。
算术运算符
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的值加1,然后返回$a |
$a++ |
返回$a,然后将$a的值加1 |
-- |
递减 |
--$a |
将$a的值减一,然后返回$a |
$a-- |
返回$a,然后将$a的值减1 |
逻辑运算符
逻辑运算符用于对操作数执行位级操作。这些运算符允许对整数中的特定位进行评估和操作。
操作符 |
姓名 |
示例 |
说明 |
and |
And |
$a 和 $b |
如果 $a 和 $b 都为真则返回 TRUE |
Or |
Or |
$a 或 $b |
如果 $a 或 $b 为真则返回 TRUE |
xor |
Xor |
$a xor $b |
如果 $ 或 $b 为真但不是两者都为真,则返回 TRUE |
! |
Not |
! $a |
如果 $a 不为真则返回 TRUE |
&& |
And |
$a && $b |
如果 $a 和 $b 为真则返回 TRUE |
|| |
Or |
$a || $b |
如果 $a 或 $b 为真则返回 TRUE |
字符串运算符
字符串运算符用于对字符串进行操作。 PHP中有两种字符串操作符,分别如下:
操作符 |
姓名 |
示例 |
说明 |
. |
串联 |
$a . $b |
连接 $a 和 $b |
.= |
串联和赋值 |
$a .= $b |
首先连接$a和$b,然后将连接后的字符串赋值给$a,例如$a = $a 。 $b |
数组运算符
数组运算符用于数组。基本上,这些运算符用于比较数组的值。
操作符 |
姓名 |
示例 |
说明 |
+ |
Union |
$a + $y |
$a 和 $b 的并集 |
== |
Equality |
$a == $b |
如果 $a 和 $b 具有相同的键/值对,则返回 TRUE |
!= |
Inequality |
$a != $b |
如果 $a 不等于 $b 则返回 TRUE |
==== |
Identity |
$a === $b |
如果 $a 和 $b 具有相同类型且顺序相同的相同键/值对,则返回 TRUE |
!== |
Non-Identity |
$a !== $b |
如果 $a 与 $b 不同则返回 TRUE |
<> |
Inequality |
$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() |
左 |
** |
arithmetic |
对 |
++--~(int)(float)(string)(array)(object)(bool) @ |
递增/递减和类型 |
对 |
instanceof |
types |
非关联 |
! |
逻辑(否定) |
对 |
*/% |
算术 |
左 |
+-. |
算术和字符串连接 |
左 |
<<>> |
按位(移位) |
左 |
<<=> >= |
对比 |
非关联 |
== != === !== <> |
对比 |
非关联 |
& |
按位与 |
左 |
^ |
按位异或 |
左 |
| |
按位或 |
左 |
&& |
逻辑与 |
左 |
|| |
逻辑或 |
左 |
?: |
三元 |
左 |
= +=-= *= **=/= .= %= &= |= ^= <<=>>= => |
assignment |
对 |
and |
logical |
左 |
xor |
logical |
左 |
or |
logical |
左 |
, |
many uses(comma) |
左 |