本文概述
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