Php 简明教程

PHP - Operators Types

What are Operators in PHP?

与任何编程语言一样,PHP 也有运算符,它们是符号(有时 keywords ),被预先定义来对一个或多个操作数执行某些通常需要的操作。

例如,使用表达式“4 + 5”等于 9。此处“4”和“5”称为 operands ,而“+”称为 operator

我们在 PHP 中具有以下类型的运算符 −

  1. Arithmetic Operators

  2. Comparison Operators

  3. Logical Operators

  4. Assignment Operators

  5. String Operators

  6. Array Operators

  7. Conditional (or Ternary Operators)

本章将概述如何在 PHP 中使用这些运算符。在后续章节中,我们将仔细了解每个运算符及其工作原理。

Arithmetic Operators in PHP

我们使用算术运算符对给定的操作数执行加法、减法、乘法、除法等数学运算。算术运算符(不包括增量和减量运算符)始终对两个操作数起作用,但是这些操作数的类型应该相同。

下表高亮显示了 PHP 支持的算术运算符。假设变量“$a”保存了 42,而变量“$b”保存了 20 −

Operator

Description

Example

+

Adds two operands

$a + $b = 62

-

从第一个操作数中减去第二个操作数

$a - $b = 22

*

Multiply both operands

$a * $b = 840

/

Divide numerator by de-numerator

$a / $b = 2.1

%

模运算符,整数除法后的余数

$a % $b = 2

++

自增运算符,将整数加一

$a ++ = 43

 — 

自减运算符,将整数减一

$a — = 42

Comparison Operators in PHP

您将使用比较运算符来比较两个操作数并找出它们之间的关系。根据比较结果,它们返回一个布尔值(真或假)。

下表突出显示了 PHP 支持的比较运算符。假定变量 $a 存储 10,变量 $b 存储 20,则−

Operator

Description

Example

==

检查两个操作数的值是否相等,如果相等,则条件变为真。

($a == $b) 不是真

!=

检查两个操作数的值是否相等,如果不相等,则条件变为真。

($a != $b) 是真

>

检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。

($a > $b) 是假

<

检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。

($a < $b) 是真

>=

检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件变为真。

($a >= $b) 为 false

检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。

($a ⇐ $b) 为 true

Logical Operators in PHP

您可以在 PHP 中使用逻辑运算符对多个表达式一起执行逻辑运算。逻辑运算符始终返回布尔值,无论是真还是假。

逻辑运算符通常与条件语句和循环一起使用,以根据布尔条件返回决策。在处理复杂表达式时,您还可以将它们组合起来,以操作布尔值。

下表重点介绍了 PHP 支持的逻辑运算符。

假设变量 $a 保存 10,变量 $b 保存 20,则 -

Operator

Description

Example

and

名为逻辑 AND 运算符。如果两个操作数都为真,则条件变为真。

(A and B) 为真

or

称为逻辑或运算符。如果两个操作数中的任何一个非零,条件变为真。

(A 或 B) 为真

&&

称为逻辑 AND 运算符。如果两个操作数都是非零,则条件变为真。

(A && B) 为真

称为逻辑或运算符。如果两个操作数中的任何一个非零,条件变为真。

(A

B) is true

!

称为逻辑 NOT 运算符。用于反转操作数的逻辑状态。如果条件为 true,则逻辑 NOT 运算符会将其变为 false。

Assignment Operators in PHP

您可以在 PHP 中使用赋值运算符为给定变量分配或更新新值。赋值运算符的右侧保存值,而赋值运算符的左侧是将值分配到的变量。

双方的数据类型应该相同,否则您将收到一个错误。赋值运算符的结合性是从右向左。PHP 支持两种类型的赋值运算符 −

  1. Simple Assignment Operator − 它是使用最广泛的运算符。它用于为变量或常量赋值。

  2. Compound Assignment Operators − 将赋值运算符 (=) 与其他运算符(例如 +、*、/ 等)组合。

下表高亮显示了 PHP 支持的赋值运算符 −

Operator

Description

Example

=

简单的赋值运算符,将右侧操作数的值赋给左侧操作数

C = A + B 将 A + B 的值赋给 C

+=

加法和赋值运算符,它将右侧操作数加到左侧操作数并将其结果赋给左侧操作数

C += A 等效于 C = C + A

-=

减法和赋值运算符,它从左侧操作数中减去右侧操作数并将结果赋给左侧操作数

C -= A 等效于 C = C - A

*=

乘法和赋值运算符,它用右侧操作数乘以左侧操作数并将结果赋给左侧操作数

C *= A 等效于 C = C * A

/=

除法和赋值运算符,它将左侧操作数除以右侧操作数并将结果赋给左侧操作数

C /= A 等效于 C = C / A

%=

模数和赋值运算符,它使用两个操作数进行模数运算,并将结果分配给左操作数

C %= A 等效于 C = C % A

String Operators in PHP

PHP 中有两个运算符用于处理字符串数据类型 −

  1. "."(点)运算符是 PHP 的连接运算符。它连接两个字符串操作数(将右手字符串的字符追加到左手字符串),并返回一个新字符串。

  2. PHP 还有一个“.=”运算符,可以称之为连接赋值运算符。它通过追加右手操作数的字符来更新在其左边的字符串。

$third = $first . $second;
$leftstring .= $rightstring;

Array Operators in PHP

PHP 定义了以下一组符号,用作数组数据类型的运算符−

Symbol

Example

Name

Result

+

$a + $b

Union

$a 和 $b 的并集。

==

$a == $b

Equality

如果 $a 和 $b 具有相同的键值对,则为 TRUE。

===

$a === $b

Identity

如果 $a 和 $b 在相同顺序中具有相同的键值对且具有相同的类型,则为 TRUE。

!=

$a != $b

Inequality

如果 $a 不等于 $b,则为 TRUE。

<>

$a <> $b

Inequality

如果 $a 不等于 $b,则为 TRUE。

!==

$a !== $b

Non identity

如果 $a 与 $b 不是同一对象,则为 TRUE。

Conditional Operators in PHP

PHP 中还有一个运算符称为条件运算符。它也被称为三元运算符。它首先为真或假值求值一个表达式,然后根据求值结果执行两个给定语句中的一个。

Operator

Description

Example

? :

Conditional Expression

如果条件为真?然后值为 X:否则值为 Y

Operator Categories in PHP

我们在上面讨论的所有运算符可以归类为以下几类−

  1. 单目前缀运算符,它位于单个操作数之前。

  2. 二元运算符,它取两个操作数并执行各种算术和逻辑运算。

  3. 条件运算符(三元运算符),它取三个操作数并根据第一个表达式的求值结果求值第二个或第三个表达式。

  4. 赋值运算符,它将值分配给变量。

Operator Precedence in PHP

运算符的优先级决定了表达式中运算符执行的顺序。例如,在“2+6/3”中,6/3 的除法先执行,然后“2+2”的加法执行,因为除法运算符“/”的优先级高于加法运算符“+”。

要强制在其他运算符之前调用某个运算符,应使用括号。在此示例中,(2+6)/3 首先执行加法,然后执行除法。

某些运算符可能具有相同优先级。在这种情况下,关联顺序(左或右)决定运算顺序。具有相同优先级但非关联的运算符不能并列使用。

下表按运算符的优先级降序列出了 PHP 运算符 −

Operators

Purpose

clone new

clone and new

**

exponentiation

++ — 

increment/decrement

~(int) (float) (string) (array) (object) (bool)

casting

instanceof

types

!

logical

* /

multiplication/division

%

modulo

+ - .

arithmetic and string

<< >>

bitwise shift

< ⇐ > >=

comparison

= != === !== <> ≤== != === !== <> ≤

comparison

&

bitwise and/references

^

bitwise XOR

bitwise OR

&&

logical and

logical or

??

null coalescing

? :

ternary

= += -= = * = /= .= %= &=

= ^= ≤ >>= ??=

assignment operators

yield from

yield from

yield

yield

print

print

and

logical

xor

logical

or

logical