在本 PHP 教程中,您将学习 PHP 中的所有运算符。我们将详细讨论运算符的类型。
PHP 运算符是用于对变量或值执行操作并评估结果的符号。这些变量值称为操作数。包含任何运算符和操作数的语句称为表达式。
运算符可以分为 3 类
算术运算符用于执行基本的算术运算,例如加法、减法、乘法等。
|
运算符 |
姓名 |
描述 |
|---|---|---|
|
+ |
加法 |
它用于查找操作数的和 |
|
- |
减法 |
它用于查找操作数的差 |
|
* |
乘法 |
它用于查找操作数的积 |
|
/ |
除法 |
它用于查找操作数的商 |
|
% |
取模 |
它用于查找操作数的余数 |
|
** |
幂运算 |
它用于查找第一个操作数的第二次方 |
$a = 10;
$b = 4;
$sum = $a + $b; //Addition operator
$dif = $a - $b; //Subtraction operator
$pro = $a * $b; //Multiplication operator
$div = $a / $b; //Division operator
$rem = $a % $b; //Modulus operator
$pow = $a ** $b; //Exponentiation operator
echo $sum . "\n";
echo $dif . "\n";
echo $pro . "\n";
echo $div . "\n";
echo $rem . "\n";
echo $pow . "\n";
输出
14 6 40 2.5 2 10000
比较运算符用于比较两个值(操作数),它们可以是字符串或数字。
| 运算符 | 姓名 | 描述 |
|---|---|---|
|
== |
等于 |
如果两个操作数的值相等,则返回 true |
|
=== |
全等 |
如果两个操作数的值和它们的数据类型都相等,则返回 true |
|
!= |
不等于 |
如果两个操作数的值不相等,则返回 true |
|
<> |
不等于 |
如果两个操作数的值不相等,则返回 true |
|
!== |
不全等 |
如果两个操作数的值和它们的数据类型不相等,则返回 true |
|
> |
大于 |
如果左侧操作数大于右侧操作数,则返回 true |
|
< |
小于 |
如果左侧操作数小于右侧操作数,则返回 true |
|
>= |
大于等于 |
如果左侧操作数大于或等于右侧操作数,则返回 true |
|
<= |
小于等于 |
如果左侧操作数小于或等于右侧操作数,则返回 true |
$a = 10;
$b = 4;
var_dump($a == $b) . "\n"; // Equal operator
var_dump($a === $b) . "\n"; // Identical operator
var_dump($a != $b) . "\n"; // Not Equal operator
var_dump($a <> $b) . "\n"; // Not Equal operator
var_dump($a !== $b) . "\n"; // Not Identical operator
var_dump($a > $b) . "\n"; // Greater than operator
var_dump($a < $b) . "\n"; // Less than operator
var_dump($a >= $b) . "\n"; // Greater than equal to operator
var_dump($a <= $b) . "\n"; // Less than equal to operator
输出
bool(false) bool(false) bool(true) bool(true) bool(true) bool(true) bool(false) bool(true) bool(false)
递增运算符用于将操作数的值递增 1
递减运算符用于将操作数的值递减 1
| 运算符 | 姓名 | 描述 |
|---|---|---|
| ++$a | 前置递增 | 它会先递增操作数的值,然后返回该值 |
| $a++ | 后置递增 | 它会先返回该值,然后递增操作数的值 |
| --$a | 前置递减 | 它会先递减操作数的值,然后返回该值 |
| $a++ | 后置递减 | 它会先返回该值,然后递减操作数的值 |
$a = 10;
$b = 10;
$c = 10;
$d = 10;
echo ++$a . "\n"; // Pre-increment operator
echo $b++ . "\n"; // Post-increment operator
echo --$c . "\n"; // Pre-decrement operator
echo $d-- . "\n"; // Post-decrement operator
输出
11 10 9 10
赋值运算符用于将右侧操作数的值赋给左侧操作数。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| = | 赋值 | 它用于将右侧操作数的值赋给左侧操作数 |
| += | 加然后赋值 | 它首先将两个操作数的值相加,然后将结果赋给左侧操作数 |
| -= | 减然后赋值 | 它首先将两个操作数的值相减,然后将结果赋给左侧操作数 |
| *= | 乘然后赋值 | 它首先将两个操作数的值相乘,然后将结果赋给左侧操作数 |
| /= | 除然后赋值(商) | 它首先将两个操作数的值相除,然后将商赋给左侧操作数 |
| %= | 除然后赋值(余数) | 它首先将两个操作数的值相除,然后将余数赋给左侧操作数 |
$a = 10;
$b = 10;
$c = 30;
$d = 8;
$e = 9;
$f = 4;
$x = $a; // assign operator
echo $x . "\n";
$b += $a; // Add then assign operator
echo $b . "\n";
$b -= $a; // Subtract then assign operator
echo $b . "\n";
$d *= $f; // Multiply then assign operator
echo $d . "\n";
$b /= $a; // Divide then assign(quotient) operator
echo $b . "\n";
$c %= $e; // Divide then assign(reminder) operator
echo $c . "\n";
输出
10 20 10 32 1 3
在 PHP 中,用于评估两个表达式或语句的运算符是逻辑运算符。三个基本的逻辑运算符是 and、or 和 not。这些运算符在布尔上下文中控制程序流,类似于比较运算符。布尔值要么是 True(1) 要么是 False(0)。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| and | 与 | 如果两边值都为真,则返回 true |
| or | 或 | 如果任一边值都为真,则返回 true |
| 异或 | 异或 | 如果任一边值都为真但不同时为真,则返回 true |
| && | 与 | 如果两边值都为真,则返回 true |
| || | 或 | 如果任一边值都为真,则返回 true |
| ! | 非 | 它是一元运算符,如果操作数的值为假,则返回 true;如果操作数的值为真,则返回 false |
$a = 10;
$b = 20;
var_dump($a == 10 and $b == 20) . "\n"; //And operator
var_dump($a == 10 or $b == 15) . "\n"; //Or operator
var_dump($a == 20 xor $b == 10) . "\n"; //Xor operator
var_dump($a == 18 && $b == 20) . "\n"; //And operator
var_dump($a == 10 || $b == 20) . "\n"; //Or operator
var_dump(!($a == 15)) . "\n"; //Not operator
输出
bool(true) bool(true) bool(false) bool(false) bool(true) bool(true)
PHP 中的字符串运算符用于对字符串执行操作。
| 运算符 | 姓名 | 描述 |
| . | 连接 | 它用于连接两个字符串 |
| .= | 连接并赋值 | 它用于连接两边并将值赋给左侧操作数 |
$a = "learnE";
$b = "tutorials.com";
echo $a . $b; // Concatenation operator
echo "\n";
$a .= $b; // Concatenate and assign operator
echo $a;
输出
learnEtutorials.com learnEtutorials.com
PHP 数组运算符用于对数组执行操作。它们主要用于数组的比较。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| + | 联合体 | 它用于获取两个数组的并集 |
| == | 相等 | 如果两个数组相等,则返回 true |
| === | 全等 | 如果数组的值及其数据类型都相等,则返回 true |
| != | 不相等 | 如果两个数组不相等,则返回 true |
| <> | 不相等 | 如果两个数组不相等,则返回 true |
| !== | 不全等 | 如果数组的值及其数据类型都不相等,则返回 true |
$a = array("a" => "PHP", "b" => "Python");
$b = array("c" => "C++", "d" => "Java");
print_r($a + $b); // Union operator
var_dump($a == $b); // Equality operator
var_dump($a === $b); // Identical operator
var_dump($a != $b); // Inequality operator
var_dump($a <> $b); // Inequality operator
var_dump($a !== $b); // Non-identical operator
输出
Array
(
[a] => PHP
[b] => Python
[c] => C++
[d] => Java
)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
PHP 条件赋值运算符用于根据条件设置值。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| ?: | 三元 | 它类似于 if 语句。如果第一个表达式为真,它返回第二个表达式的值,否则返回第三个表达式的值 |
| ?? | 空值合并 | 它检查两个表达式,如果第一个表达式为 null 或不存在,则返回第二个表达式,如果存在,则返回第一个表达式 |
$age = 23;
echo $age > 18 ? "can vote" : "cant vote"; // Ternary operator
echo "\n";
echo $age ?? "no age given"; // Null coalescing operator
echo "\n";
echo $gender ?? "gender not given"; // Null coalescing operator
输出
can vote 23 gender not given
PHP 中的类型运算符“instanceof”用于确定对象、其父类及其派生类是否属于同一类型。通常,此运算符识别对象所属的类。
class Abc
{
}
class Xyz
{
}
$value = new Abc();
var_dump($value instanceof Abc);
var_dump($value instanceof Xyz);
输出
bool(true) bool(false)
在 PHP 中,执行运算符用于执行 shell 命令。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| `` | 反引号 | 它用于在 PHP 中执行 shell 命令 |
$path = `dir`;
echo $path;
// to find the path of the file
输出
Volume in drive C is Acer Volume Serial Number is 16BF-2C7E Directory of C:\XAMPP FOLDER\htdocs\operators 03-11-2021 01:33 AM
错误控制运算符用于忽略表达式形成的错误消息。我们使用符号 @ (at) 作为错误控制运算符。
$val = 76 / 0;
echo "Welcome to learnetutorials.com";
输出
Warning: Division by zero in C:\XAMPP FOLDER\htdocs\MYPC\operators\comp.php on line 3 Welcome to learnetutorials.com
@$val = 76 / 0; // while trying to divide a number by 0 it gives error. By using the @ operator we can ignore the error message
echo "Welcome to learnetutorials.com";
输出
Welcome to learnetutorials.com
飞船运算符更像是比较运算符。它将比较操作数,如果第一个操作数的值大于第二个操作数,则返回 1;如果两个操作数相同,则返回 0;否则返回 -1。
echo 10 <=> 5;
echo "\n";
echo 5 <=> 10;
echo "\n";
echo 5 <=> 5;
输出
1 -1 0
位运算符用于对操作数执行位级操作。这些运算符允许评估和操作整数内的特定位。
| 运算符 | 姓名 | 描述 |
|---|---|---|
| & | 与 | 如果两个操作数中都有位 1,则返回 1,否则返回 0 |
| | | 或(包含或) | 如果任一操作数中有位 1,则返回 1,否则返回 0 |
| ^ | 异或(排他或) | 如果两个操作数中都是 1 或 0,则为 0,否则为 1 |
| ~ | 非 | 如果是 1 则返回 0,否则返回 1 |
| << | 左移 | 它将值从右向左移动 |
| >> | 右移 | 它将值从左向右移动 |
$a = 7;
$b = 5;
echo $a & $b; // bitwise and operator
echo "\n";
echo $a | $b; // bitwise or operator
echo "\n";
echo $a ^ $b; // bitwise xor operator
echo "\n";
echo ~$b; // bitwise not operator
echo "\n";
echo $a << $b; // bitwise shift left operator
echo "\n";
echo $a >> $b; // bitwise shift right operator
echo "\n";
输出
5 7 2 -6 224 0