主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

PHP 运算符

PHP 运算符主要包括以下类型:算术运算符、赋值运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符以及组合比较符(太空船运算符)。这些运算符构成了PHP语言的基础运算体系,能够满足各种编程场景的需求。


PHP 算术运算符

✅ 本表系统整理了 PHP 中最基础的算术运算符,通过清晰的示例展示各运算符的具体功能与运算结果:

运算符 名称 详细说明 代码示例 预期结果
x + y 加法运算 计算两个操作数的算术和 echo 2 + 2; 4
x - y 减法运算 计算两个操作数的算术差 echo 5 - 2; 3
x * y 乘法运算 计算两个操作数的乘积 echo 5 * 2; 10
x / y 除法运算 计算两个操作数的商(返回浮点结果) echo 15 / 5; 3
x % y 取模运算 返回除法运算后的余数(特别适用于判断奇偶性、循环计数等场景) echo 5 % 2;
echo 10 % 8;
1
2
-x 取负运算 对操作数进行符号取反操作 $x = 2; echo -$x; -2
~x 按位取反 对操作数的二进制表示按位取反(常用于位运算和加密算法) $x = 2; echo ~$x; -3
a . b 字符串连接 将两个字符串拼接为一个新字符串(PHP特有的字符串连接运算符) echo "Hi" . "Ha"; HiHa

✅ 以下实例通过不同算术运算符的演示,展示了相应的运算结果:

$x = 10;
$y = 6;
echo ($x + $y);     // 输出 16
echo ($x - $y);     // 输出 4
echo ($x * $y);     // 输出 60
echo ($x / $y);     // 输出 1.6666666666667
echo ($x % $y);     // 输出 4
echo -$x;             // 输出 -10
echo ~$x;            // 输出 -11
echo $x.$y;         // 输出 106

✅ PHP7+ 版本新增整除运算符intdiv(),使用实例:

var_dump(intdiv(10, 3));

✅ 以上实例会输出:

int(3)

PHP 赋值运算符

在 PHP 中,赋值运算符=是最基础的运算符之一,其核心功能是将右侧表达式的值赋予左侧的操作数。

运算符 等同于 描述
x = y x = y 左操作数被设置为右侧表达式的值
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y 模(除法的余数)
a .= b a = a . b 连接两个字符串

✅ 以下实例演示了使用不同赋值运算符得到的不同结果:

$a = 10;
echo $a; // 输出 10

$b = 20;
$b += 100;
echo $b; // 输出 120

$c = 50;
$c -= 25;
echo $c; // 输出 25

$d = 5;
$d *= 6;
echo $d; // 输出 30

$e = 10;
$e /= 5;
echo $e; // 输出 2

$f = 15;
$f %= 4;
echo $f; // 输出 3

✅ 以下实例演示了使用不同字符串运算符得到的相同结果:

$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!

$x = "Hello";
$x .= " world!";
echo $x; // 输出 Hello world!

PHP 递增/递减运算符

PHP 提供了递增和递减运算符,用于对变量的值进行加1或减1操作。这些运算符在循环、计数等场景中非常有用。

运算符 名称 描述
++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1
-- x 预递减 x 减 1,然后返回 x
x -- 后递减 返回 x,然后 x 减 1

✅ 以下实例演示了使用递增/递减运算符得到的结果:

$a = 10;
echo ++$a; // 输出 11

$b = 10;
echo $b++; // 输出 10

$c = 5;
echo --$c; // 输出 4

$d = 5;
echo $d--; // 输出 5

PHP 比较运算符

PHP 提供了多种比较运算符,用于比较两个值的大小或相等性。

✅ 以下是 PHP 中的主要比较运算符:

运算符 名称 描述 实例
x == y 等于 如果 x 等于 y,则返回 true 5==8 返回 false
x === y 绝对等于 如果 x 等于 y,且它们类型相同,则返回 true 5==="5" 返回 false
x != y 不等于 如果 x 不等于 y,则返回 true 5!=8 返回 true
x <> y 不等于 如果 x 不等于 y,则返回 true 5<>8 返回 true
x !== y 不绝对等于 如果 x 不等于 y,或它们类型不相同,则返回 true 5!=="5" 返回 true
x > y 大于 如果 x 大于 y,则返回 true 5>8 返回 false
x < y 小于 如果 x 小于 y,则返回 true 5<8 返回 true
x >= y 大于等于 如果 x 大于或者等于 y,则返回 true 5>=8 返回 false
x <= y 小于等于 如果 x 小于或者等于 y,则返回 true 5<=8 返回 true

✅ 以下实例演示了使用一些比较运算符得到的不同结果:

$a = 10;
$y = "100";
var_dump($x == $y); // 返回 false
var_dump($x === $y); // 返回 false
var_dump($x != $y); // 返回 true
var_dump($x !== $y); // 返回 true

$a = 50;
$b = 90;
var_dump($a > $b); // 返回 false
var_dump($a < $b); // 返回 true

PHP 数组运算符

PHP 提供了一些专门用于数组操作的运算符,用于比较或合并数组。

✅ 以下是 PHP 中的主要数组运算符:

运算符 名称 描述
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true

✅ 以下实例演示了使用一些数组运算符得到的不同结果:

$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);

PHP 三元运算符

三元运算符是 PHP 中一种简洁的条件表达式,它允许在一行代码中根据条件返回不同的值。

✅ 基本语法:

(条件) ? 表达式1 : 表达式2;
  • 如果条件为 true,返回表达式1的值
  • 如果条件为 false,返回表达式2的值
// 普通写法
$name = isset($_GET['name']) ? $_GET['name'] : '匿名用户';

// PHP 5.3+ 版本写法
$name = $_GET['name'] ?: '匿名用户';

// PHP 7+ 版本写法
$name = $_GET['name'] ?? '匿名用户';

组合比较符(PHP7+)

PHP7+ 引入了组合比较运算符,也称为太空船操作符,其符号为<=>。这个运算符能够以简洁直观的方式实现两个变量的三态比较,它会根据左操作数是否小于、等于或大于右操作数,分别返回 -101

该运算符不仅适用于数值类型的比较,还可以智能处理字符串、数组等多种数据类型的比较场景,极大地简化了需要明确判断大小关系的代码逻辑。

✅ 其语法结构如下:

$c = $a <=> $b;

✅ 解析如下:

  • 如果 $a > $b, 则 $c 的值为 1。
  • 如果 $a == $b, 则 $c 的值为 0。
  • 如果 $a < $b, 则 $c 的值为 -1。

✅ 实例如下:

// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

运算符优先级

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

说明:左 = 从左到右,右 = 从右到左。

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到

运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。

// 优先级: &&  >  =  >  and
// 优先级: ||  >  =  >  or

$a = 3;
$b = false;
$c = $a or $b;
var_dump($c);          // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d);          //这里的 $d 就是 boolean 值 true 

✅ 以上实例输出结果为:

int(3)
bool(true)

括号的使用

我们通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。

// 括号优先运算

$a = 1;
$b = 2;
$c = 3;
$d = $a + $b * $c;
echo $d;
$e = ($a + $b) * $c;  // 使用括号
echo $e;

✅ 以上实例输出结果为:

7
9


评论区 0
发表评论