本文概述
PHP Operator是一个符号, 即用于对操作数执行操作的符号。简而言之, 运算符用于对变量或值执行运算。例如:
$num=10+20;//+ is the operator and 10, 20 are operands
在上面的示例中, +是二进制+运算符, 10和20是操作数, $ num是变量。
PHP运算符可以按以下形式分类:
算术运算符
赋值运算符
按位运算符
比较运算符
递增/递减运算符
逻辑运算符
字符串运算符
数组运算符
类型运算符
执行运算符
错误控制运算符
我们还可以代表操作数对运算符进行分类。它们可以分为3种形式:
一元运算符:适用于++, -等单个操作数。
二进制运算符:对两个操作数起作用, 例如二进制+, -, *, /等。
三元运算符:对三个运算符(例如”?:”)进行运算。
算术运算符
PHP算术运算符用于执行常用的算术运算, 例如对数值进行加法, 减法等。
Operator
Name
Example
Explanation
+
Addition
$ a + $ b
操作数总和
–
Subtraction
$ a-$ b
操作数的差异
*
Multiplication
$ a * $ b
操作数的乘积
/
Division
$ a / $ b
操作数的商
%
Modulus
$ a%$ b
余数
**
Exponentiation
$ a ** $ b
$ a升到$ b
指数(**)运算符已在PHP 5.6中引入。
赋值运算符
赋值运算符用于将值赋给不同的变量。基本赋值运算符为” =”。
Operator
Name
Example
Explanation
=
Assign
$ 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相同的余数
按位运算符
按位运算符用于对操作数执行位级运算。这些运算符允许对整数内的特定位进行评估和处理。
Operator
Name
Example
Explanation
&
And
$ a和$ b
$ a和$ b中均为1的位设置为1, 否则为0。
|
或(包含或)
$ a | $ b
$ a或$ b中为1的位设置为1
^
异或(异或)
$ a ^ $ b
$ a或$ b中为1的位设置为0。
~
Not
~$a
1的位设置为0, 而0的位设置为1
<<
左移
$ a << $ b
左移操作数$ a $ b的位
>>
右移
$ a >> $ b
将$ a操作数的位右移$ b个位数
比较运算符
比较运算符允许比较两个值, 例如数字或字符串。下面给出了比较运算符的列表:
Operator
Name
Example
Explanation
==
Equal
$ a == $ b
如果$ a等于$ b, 则返回TRUE
===
Identical
$ a === $ b
如果$ a等于$ b并且它们具有相同的数据类型, 则返回TRUE
!==
Not identical
$ a!== $ b
如果$ a不等于$ b并且它们不是同一数据类型, 则返回TRUE
!=
不相等
$ a!= $ b
如果$ a不等于$ b, 则返回TRUE
<>
Not equal
$ a <> $ b
如果$ a不等于$ b, 则返回TRUE
<
Less than
$ a
如果$ a小于$ b, 则返回TRUE
>
Greater than
$ a> $ b
如果$ a大于$ b, 则返回TRUE
<=
小于或等于
$ a <= $ b
如果$ a小于或等于$ b, 则返回TRUE
>=
大于或等于
$ a> = $ b
如果$ a大于或等于$ b, 则返回TRUE
<=>
Spaceship
$ a <=> $ b
如果$ a小于$ b, 则返回-1;如果$ a等于$ b, 则返回0;如果$ a大于$ b, 则返回1。
递增/递减运算符
递增和递减运算符用于增加和减少变量的值。
Operator
Name
Example
Explanation
++
Increment
++ $ a
将$ a的值加1, 然后返回$ a
$a++
返回$ a, 然后将$ a的值加1
—
decrement
–$a
将$ a的值减一, 然后返回$ a
$a–
返回$ a, 然后将$ a的值减一
逻辑运算符
逻辑运算符用于对操作数执行位级运算。这些运算符允许对整数内的特定位进行评估和处理。
Operator
Name
Example
Explanation
and
And
$ a和$ b
如果$ a和$ b都为true, 则返回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中有两个字符串运算符, 如下所示:
Operator
Name
Example
Explanation
.
Concatenation
$ a。 $ b
连接$ a和$ b
.=
串联和分配
$ a。= $ b
首先连接$ a和$ b, 然后将连接的字符串分配给$ a, 例如$ a = $ a $ b
数组运算符
如果是数组, 则使用数组运算符。基本上, 这些运算符用于比较数组的值。
Operator
Name
Example
Explanation
+
Union
$ a + $和
$ 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用于确定对象, 其父对象及其派生类是否相同。基本上, 此运算符确定对象属于哪个特定类。它用于面向对象的编程。
//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 "";
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()给出相同的结果。
Operator
Name
Example
Explanation
“
backticks
回声`目录`;
执行shell命令并返回结果。在这里, 它将显示当前文件夹中的可用目录。
注意:请注意反引号(“)不是单引号。
错误控制运算符
PHP具有一个错误控制运算符, 即(@)符号。只要将它与表达式一起使用, 该表达式可能生成的任何错误消息都将被忽略。
Operator
Name
Example
Explanation
@
at
@file(‘non_existent_file’)
故意文件错误
PHP运算符优先级
让我们看看具有关联性的PHP运算符的优先级。
Operators
Additional Information
Associativity
克隆新
克隆和新
non-associative
[
array()
left
**
arithmetic
right
++-〜(整数)(浮点数)(字符串)(数组)(对象)(布尔)@
增量/减量和类型
right
instanceof
types
non-associative
!
逻辑(否定)
right
* / %
arithmetic
left
+ – .
算术和字符串连接
left
<< >>
bitwise (shift)
left
< <= > >=
comparison
non-associative
== != === !== <>
comparison
non-associative
&
按位与
left
^
按位异或
left
|
bitwise OR
left
&&
logical AND
left
||
逻辑或
left
?:
ternary
left
= += -= *= **= /= .= %= &= |= ^= <<= >>= =>
assignment
right
and
logical
left
xor
logical
left
or
logical
left
,
许多用途(逗号)
left