摘要訊息 : PHP 中的運算子教學.
0. 前言
本文于 2022 年 3 月 18 日进行一次更新和修正. 修正之后本文已经归档, 不再享受更新.
1. 算数运算符
+: 加法;-: 减法;*: 乘法;/: 除法;%: 求余/
2. 赋值运算符
=: 将右边表达式的值赋值给左边;+=: 将右边表达式的值加上左边的值赋值给左边;-=: 将右边表达式的值减去左边的值赋值给左边;*=: 将右边表达式的值乘上左边的值赋值给左边;/=: 将右边表达式的值除以左边的值赋值给左边;%=: 将右边表达式的值与左边的值求余后赋值给左边.
3. 字符串运算符
由于 PHP 是弱语言, 所以对于字符串, PHP 给字符串创造了一个较绝大多数语言不同的字符串运算符. "." 相当于 C++ 语言中 std::string 类型的 "+", 即连接字符串 :
<?php
$a = "Hello";
$b = "PHP";
echo $a.", ".$b."!"; // 结果 : Hello, PHP!
?>
".=" 相当于 C++ 语言中 std::string 类型的 "+=", 即将右边字符串表达式的值加上左边的字符串再赋值给左边 :
<?php
$a = "Hello";
$a .= $a;
echo $a; // 结果 : HelloHello
?>
4. 递增与递减运算符
++: 将变量加 1;--: 将变量减 1.
++ 和 -- 分成了前递增, 前递减, 后递增和后递减 :
<?php
$i = 0;
echo $i++; // 结果 : 0
echo $i; // 结果 : 1
$i = 0;
echo ++$i; // 结果 : 1
?>
5. 比较运算符
PHP 由于本身的特性, 所以会有比较多的比较运算符 :
==: 值相等则返回True, 否则回传False;===: 值相等并且类型相等则返回True, 否则回传False;!=: 值不等则返回True, 否则回传False;!==: 值相等但是类型不相等则返回True, 否则回传False;<>: 同 !=, 值不等则返回True, 否则回传False;>: 值较右边大则返回True, 否则回传False;<: 值较右边小则返回True, 否则回传False;>=: 值较右边大或者等于右边则返回True, 否则回传False;<=: 值较右边小或者等于右边则返回True, 否则回传False.
6. 逻辑运算符
and: 与. 当条件全部为True才返回True, 否则回传False;&&: 同and;or: 或. 只要条件有一个为True则返回True, 否则回传False;||: 同or;xor: 异或, 有且仅有一个条件为True则返回True, 否则回传False;!: 非. 若条件为False则返回True, , 否则回传False.
7. 数组运算符
PHP 不像 Swift, 分为数组, 字典和元组, 在 PHP 中统一使用数组进行表示. 在目前的 PHP 版本中, 数组运算符执行之后, 已经无法正常输出, 所以这里不再做介绍, 有兴趣的可以自行 Google.
8. 位运算符
&: 按位和;|: 按位或;^: 按位异或;~: 按位取反;<<: 左移;>>: 右移.
9. 错误控制运算符
在 PHP 中, 当在运算之前加入 @ 则表示 : 若该语句有错误提示, 屏蔽这个提示 :
<?php
$error = 10 / 0; // 有错误提示, 除数为 0
$err = @(10 / 0); // 无错误提示
?>
10. 三元运算符
在 PHP 中, 三元运算符只有一个, 即 "?:", 和 C 语言中的三元运算符类似 : (condition) ? (statement1) : (statement2). 当条件 condition 成立, 则执行语句 statement1, 否则执行语句 statement2.
11. 运算符优先级与结合规则
在 PHP 中的运算符的优先级和结合规则其实与正常的数学运算符极其类似. 值得注意的是, 赋值运算符是由右边向左边依次赋值 :
<?php
$a = 0;
$b = 9;
$c = $b = $a;
echo $c; // 结果 : 0
?>
12. 表达式
类似于 $a = 5 被称为表达式, 类似于 $a = 5; 被称为语句.
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :