在本课中,我们将学习 PHP 运算符。我们通过示例完整详细地解释了 PHP 中的所有运算符及其使用范围。

在一个或多个值之间执行运算的字符或单词称为运算符或运算符。运算符的英文单词是operator,在土耳其语中称为operator。然而,一些消息来源将其称为运营商。两者具有相同的含义。

PHP 运算符

PHP 算术运算符

PHP 算术运算符与数值一起使用来执行常见的算术运算,例如加法、减法、乘法。

操作员姓名例子
+加法$a + $b
-减法$a - $b
*乘法$a * $b
/师$a / $b
%模数(模数)$a % $b

PHP 算术运算符示例

我们使用加法运算符将 2 个值相加。在此示例中,我们使用了 php 加法运算符:

echo 2+4; // Çıktı: 6

我们使用减法运算符将一个值从另一个值中减去。在此示例中,我们使用了 php 减法运算符:

echo 5-2; // Çıktı: 3

我们使用除法运算符将一个值除以另一个值。在此示例中,我们使用了 php split 运算符:

echo 6/2; // Çıktı: 3

我们使用乘法运算符将一个值乘以另一个值。在此示例中,我们使用了 php 乘法运算符:

echo 5*2; // Çıktı: 10

使用模运算符,我们可以找到一个值除以另一个值时的余数。在此示例中,我们使用了 php 模块运算符:

echo 7%2; // Çıktı: 1

PHP 赋值运算符

PHP 赋值运算符用于赋值。

操作员姓名例子
=作业$a = $b
+=收集和丢弃$a+=4
-=减法和赋值$a -=4
*=划分和分配$a /=4
*=乘法和赋值$a *=4
%=模块和分配$a%=4

PHP 赋值运算符示例

我们使用等于运算符将右侧的值分配给左侧的操作数。

$a = 20;

我们使用添加和赋值运算符将左右变量的总和分配给变量。

$a = 10;
$b = 15; 
$a += $b; // $a değişkeninin değeri 25
// Üst satırdaki ifade ile $a = $a + $b ifadesi aynı.

通过减法和赋值运算符,我们将左边变量的值减去右边变量的值的结果赋给了变量。

$a = 20;
$b = 10; 
$a -= $b; // $a değişkeninin değeri 10
// Üst satırdaki ifade ile $a = $a - $b ifadesi aynı.

使用除法和赋值运算符,我们将左侧变量的值除以右侧变量的值多少次的结果分配给变量。

$a = 12;
$b = 4; 
$a /= $b; // $a değişkeninin değeri 3
// Üst satırdaki ifade ile $a = $a / $b ifadesi aynı.

通过乘法和赋值运算符,我们将两个变量值相乘的结果赋给变量。

$a = 2;
$b = 2; 
$a *= $b; // $a değişkeninin değeri 4
// Üst satırdaki ifade ile $a = $a * $b ifadesi aynı.

使用模块和赋值运算符,我们将左侧变量的值除以右侧变量的值所得的余数分配给变量。

$a = 8;
$b = 3; 
$a %= $b; // $a değişkeninin değeri 2
// Üst satırdaki ifade ile $a = $a % $b ifadesi aynı.

PHP 比较运算符

PHP 比较运算符用于比较两个值。

操作员姓名例子
==平等$a==$b
===同等$a === $b
!=不等于(不等于)$a!=$b
!==不相同$a !== $b
<>不等于(不等于)$a <> $b
>大于$a > $b
<小于$a < $b
>=大于或等于$a >= $b
<=小于或等于(小于或等于)$a <= $b

PHP 比较运算符示例

我们使用等于运算符检查两个值是否相等。

$a = 4;
$b = 2; 
if ($a == $b) {
    echo "A, B'ye eşittir";
} else {
    echo "A, B'ye eşit değildir";
}
// Çıktı: A, B'ye eşit değildir

我们使用相同的运算符检查两个值的等价性。

$a = 4;
$b = '4'; 
if ($a === $b) {
    echo "A, B'ye denktir";
} else {
    echo "A, B'ye denk değildir";
}
// Çıktı: A, B'ye denk değildir

我们使用不等于运算符检查两个值的不等式。

$a = 4;
$b = 3; 
if ($a != $b) {
    echo "A, B'ye eşit değildir";
} else {
    echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

我们使用不相同运算符检查两个值的不等式。

$a = 4;
$b = '4'; 
if ($a !== $b) {
    echo "A, B'ye denk değildir";
} else {
    echo "A, B'ye denktir";
}
// Çıktı: A, B'ye denk değildir

我们使用不等于运算符检查两个值的不等式。

$a = 4;
$b = 2; 
if ($a <> $b) {
    echo "A, B'ye eşit değildir";
} else {
    echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

我们使用大于运算符检查左侧的值是否大于右侧的值。

$a = 4;
$b = 2; 
if ($a > $b) {
    echo "A, B'den daha büyüktür";
} else {
        echo "A, B'den daha büyük değildir";
}
// Çıktı: A, B'den daha büyüktür

我们使用小于运算符检查左侧的值是否小于右侧的值。

$a = 2;
$b = 4; 
if ($a &lt $b) {
    echo "A, B'den daha küçüktür";
} else {
        echo "A, B'den daha küçük değildir";
}
// Çıktı: A, B'den daha küçüktür

我们使用大于或等于运算符检查左侧的值是否大于或等于右侧的值。

$a = 4;
$b = 2; 
if ($a >= $b) {
    echo "A, B'den daha büyüktür veya eşittir";
} else {
        echo "A, B'den daha büyük veya eşit değildir";
}
// Çıktı: A, B'den daha büyüktür veya eşittir

我们使用小于或等于运算符检查左侧的值是否小于或等于右侧的值。

$a = 2;
$b = 4; 
if ($a <= $b) {
    echo "A, B'den daha küçüktür veya eşittir";
} else {
        echo "A, B'den daha küçük veya eşit değildir";
}
// Çıktı: A, B'den daha küçüktür veya eşittir

PHP 自增/自减运算符

PHP 增量运算符用于增加变量的值。 PHP 递减运算符用于减少变量的值。

操作员姓名
++$i之前增量(预增量)
$i++增量后(后增量)
--$i减少之前(预减)
$i--递减后(递减后)

PHP 自增自减运算符示例

预自增运算符首先增加变量$i的值,然后返回变量$i。

$i = 10;  
echo ++$i; // Çıktı: 11

然后后自增运算符返回变量 $i,然后递增变量 $i 的值。

$i = 10;  
echo $i++; // Çıktı: 10

预减运算符首先减少变量$i 的值,然后返回变量$i。

$i = 10;  
echo --$i; // Çıktı: 9

然后后自减运算符返回变量 $i,然后递减变量 $i 的值。

$i = 10;  
echo ++$i; // Çıktı: 10

PHP 逻辑运算符

PHP 逻辑运算符用于组合条件表达式。

操作员姓名例子
誓言和(和)$a 和 $b
或或(或)$a 或 $b
异或异或$a 异或 $b
&&和(和)$a && $b
||或(或)$a || $b
!不是(注)$a! $b

PHP 逻辑运算符示例

如果满足 $a 和 $b 中的条件,则 (and) 运算符返回 true。

$a = 100;
$b = 50;
if ($a === 100 and $b === 50) {
    echo "A, 100'e denktir ve B, 50'e denktir";
}
// Çıktı: A, 100'e denktir ve B, 50'e denktir

如果满足 $a 或 $b 中的条件,则 or (or) 运算符返回 true。

$a = 100;
$b = 50;
if ($a === 100 or $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

如果满足 $a 和 $b 中的条件,则 (and) 运算符返回 true。

$a = 100;
$b = 50;
if ($a === 100 && $b === 50) {
    echo "A, 100'e denktir ve B, 50'e denktir";
}
// Çıktı: A, 100'e denktir ve B, 50'e denktir

如果满足 $a 或 $b 中的条件,则 or (or) 运算符返回 true。

$a = 100;
$b = 50;
if ($a === 100 || $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

仅当满足 $a 或 $b 中的条件时,异或运算符才返回 true。

$a = 100;
$b = 50;
if ($a === 100 xor $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

如果不满足 $a 中的条件,则 not 运算符返回 true。

$x = 50;
if ($x !== 75) {
    echo "X, 75'e denk değildir";
}
// Çıktı: X, 75'e denk değildir

PHP 文本运算符(字符串运算符)

PHP 有 2 个专为文本设计的运算符:
连接运算符和连接赋值运算符。

操作员姓名例子
.串联运算符$a . $b
.=串联赋值运算符$a .= $b

PHP 文本运算符示例

串联运算符组合两个数据。在下面的示例中,我们组合了 $a 和 $b 变量的数据并打印它们。

$a = "Hello ";
$b = " World!";
echo $a . $b;
// Çıktı: Hello World!

串联赋值运算符将第二个数据添加到第一个数据的旁边。在下面的示例中,我们将变量 $b 的数据添加到变量 $a 的数据旁边,并打印变量 $a。

$a = "Hello ";
$b = " World!";
$a .= $b;
echo $a;
// Çıktı: Hello World!

PHP 数组运算符

PHP 中的数组运算符用于比较数组。

操作员姓名例子
+联盟运营商(联盟)$a + $b
==等式运算符(等式)$a==$b
===等价运算符(恒等式)$a === $b
!=不等式运算符(不等式)$a!=$b
<>不等式运算符(不等式)$a <> $b
!==不平衡算子(非恒等)$a !== $b

PHP 数组运算符示例

联合运算符组合数组。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
print_r($a + $b);
// Çıktı: Array ( [a] => kırmızı [b] => mavi [c] => yeşil [d] => sarı )

相等运算符(equality)提供数组中的相等控制。我们可以通过相等运算符判断两个数组的数据是否相等。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a == $b) {
	echo "A, B'ye eşittir";
} else {
	echo "A, B'ye eşit değildir";
}
// Çıktı: A, B'ye eşit değildir

恒等运算符提供数组中的相等控制。我们可以通过等价运算符判断两个数组的数据是否等价。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a === $b) {
	echo "A, B'ye denktir";
} else {
	echo "A, B'ye denk değildir";
}
// Çıktı: A, B'ye denk değildir

不等式运算符(不等式)提供数组中的不等式控制。通过不等式我们可以知道两个数组的数据不相等。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a != $b) {
	echo "A, B'ye eşit değildir";
} else {
	echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

不等式运算符(不等式)提供数组中的不等式控制。通过不等式我们可以知道两个数组的数据不相等。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a  $b) {
	echo "A, B'ye eşit değildir";
} else {
	echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

非恒等运算符在数组中提供非恒等控制。通过不等运算符我们可以发现两个数组的数据不等价。

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a !== $b) {
	echo "A, B'ye denk değildir";
} else {
	echo "A, B'ye denktir";
}
// Çıktı: A, B'ye denk değildir

PHP 条件赋值运算符

PHP 的条件赋值运算符用于根据条件赋值。

操作员姓名例子
?:三元运算符(三元)$a = expr1 ?表达式2 : 表达式3
??空合并运算符(空合并)$a = expr1 ??表达式2

PHP 条件赋值运算符示例

三元运算符分配条件数据。在下面的示例中,如果empty($user) 条件返回true,则我们将“未登录”数据分配给$status 变量,如果返回false,则将数据“已登录”分配给$status 变量。

// Örnek 1:
$user = "Onur Özden";
echo $status = (empty($user)) ? "giriş yapılmadı" : "giriş yapıldı";
// empty($user) koşulu false ise, $status değişkenine "giriş yapıldı" değerini ata, true ise $status değişkenine "giriş yapılmadı" değerini ata.
// Örnek 2:
$user = "Onur Özden";
echo $status = (empty($user)) ? 0 : 1;
// empty($user) = false ise, $status değişkenine 0 değerini ata, true ise $status değişkenine 1 değerini ata.

空合并运算符分配条件数据。如果第一个数据存在且不为空,则$a的值为第一个数据。如果第一个数据不存在或者为空,则$a的值为第二个数据。在下面的示例中,如果empty($user) 条件返回true,则我们将“未登录”数据分配给$status 变量,如果返回false,则将数据“已登录”分配给$status 变量。

// $_GET['user'] varsa ve null değilse $user değişkenine değer olarak atanır, $_GET['user'] yoksa veya null ise $user değişkenine "giriş yapılmadı" metni değer olarak tanır. 
echo $user = $_GET['user'] ?? 'giriş yapılmadı';
// Çıktı: giriş yapılmadı
// $car değişkeni varsa ve null değilse $car değişkenine $car değişkeninin değeri atanır, $car değişkeni yoksa veya null ise $car değişkenine 'BMW' değeri atanır. 
echo $color = $color ?? 'BMW';
// Çıktı: BMW

PHP 运算符优先级

操作员优先级示例

与数学一样,PHP 中的运算符也有一些优先级值。让我们通过一个例子来理解这一点。

echo 3 + 5 * 2; // Çıktı: 13

在上面的过程中,输出将是13。因为乘法优先于加法。因此,先进行乘法,再进行加法。然而,可以干预处理优先级。

echo (3 + 5) * 2; // Çıktı: 16

在上面的过程中,输出将是 16。因为我们通过将其放在括号中来优先考虑加法过程。因此,先进行加法,然后进行乘法。这就是我们干预交易优先级的方式。

运营商优先级表

在下表中,运算符按从最高优先级到最低优先级的顺序列出。同一线路上的操作员具有同等优先级,处理顺序由评估时决定。我们在下面列出了 PHP 中所有运算符的优先级表。

归因运营商
(无)clone new
(无)**
从右边+ - ++ -- ~ (int) (float) (string) (array) (object) (bool) @
从左起instanceof
(无)!
从左起* / %
从左起+ - .
从左起<< >>
从左起.
无方向的< <= > >=
无方向的== != === !== <> <=>
左&
从左起^
从左起|
从左起&&
从左起||
对??
无方向的? :
从右边= += -= *= **= /= .= %= &= |= ^= <<= >>= ??=
(无)yield from
(无)yield
(无)print
从左起and
从左起xor
从左起or

该表取自 php.net。来源: https://www.php.net/manual/tr/language.operators.precedence.php