# PHP基礎運算符有哪些
PHP作為一門廣泛使用的服務器端腳本語言,其運算符系統豐富而全面。運算符是構成PHP表達式的核心元素,掌握各類運算符的用法是PHP編程的基礎。本文將全面介紹PHP中的基礎運算符,包括算術運算符、賦值運算符、比較運算符、邏輯運算符、字符串運算符、數組運算符等,并通過大量示例幫助讀者深入理解。
## 一、算術運算符
算術運算符用于執行基本的數學運算,如加減乘除等。PHP支持以下算術運算符:
| 運算符 | 名稱 | 示例 | 結果 |
|--------|------------|------------|--------------------------|
| + | 加法 | $a + $b | $a和$b的和 |
| - | 減法 | $a - $b | $a和$b的差 |
| * | 乘法 | $a * $b | $a和$b的積 |
| / | 除法 | $a / $b | $a除以$b的商 |
| % | 取模 | $a % $b | $a除以$b的余數 |
| ** | 冪運算 | $a ** $b | $a的$b次方 |
| - | 取反 | -$a | $a的負數 |
| ++ | 自增 | $a++或++$a | $a的值增加1 |
| -- | 自減 | $a--或--$a | $a的值減少1 |
### 1.1 基本算術運算示例
```php
$a = 10;
$b = 3;
echo $a + $b; // 輸出13
echo $a - $b; // 輸出7
echo $a * $b; // 輸出30
echo $a / $b; // 輸出3.333...
echo $a % $b; // 輸出1
echo $a ** $b; // 輸出1000
自增(++)和自減(–)運算符有前置和后置之分:
$x = 5;
echo $x++; // 輸出5,然后$x變為6
echo ++$x; // $x先變為7,然后輸出7
$y = 8;
echo $y--; // 輸出8,然后$y變為7
echo --$y; // $y先變為6,然后輸出6
賦值運算符用于給變量賦值,最基本的賦值運算符是”=“。PHP還支持組合賦值運算符,將算術運算和賦值操作結合在一起。
運算符 | 示例 | 等價于 | 描述 |
---|---|---|---|
= | \(a = \)b | - | 將\(b的值賦給\)a |
+= | \(a += \)b | \(a = \)a + $b | 加法賦值 |
-= | \(a -= \)b | \(a = \)a - $b | 減法賦值 |
*= | \(a *= \)b | \(a = \)a * $b | 乘法賦值 |
/= | \(a /= \)b | \(a = \)a / $b | 除法賦值 |
%= | \(a %= \)b | \(a = \)a % $b | 取模賦值 |
**= | \(a **= \)b | \(a = \)a ** $b | 冪賦值 |
.= | \(a .= \)b | \(a = \)a . $b | 字符串連接賦值 |
$a = 10; // 簡單賦值
$b = 5;
$a += $b; // $a = $a + $b = 15
$a -= $b; // $a = $a - $b = 10
$a *= $b; // $a = $a * $b = 50
$a /= $b; // $a = $a / $b = 10
$a %= $b; // $a = $a % $b = 0
$str = "Hello";
$str .= " World!"; // $str = "Hello World!"
比較運算符用于比較兩個值,返回布爾值true或false。PHP提供了多種比較運算符:
運算符 | 名稱 | 示例 | 結果 |
---|---|---|---|
== | 等于 | \(a == \)b | 如果\(a等于\)b返回true |
=== | 全等 | \(a === \)b | 如果\(a等于\)b且類型相同 |
!= | 不等 | \(a != \)b | 如果\(a不等于\)b返回true |
<> | 不等 | \(a <> \)b | 與!=相同 |
!== | 不全等 | \(a !== \)b | 如果\(a不等于\)b或類型不同 |
< | 小于 | \(a < \)b | 如果\(a小于\)b返回true |
> | 大于 | \(a > \)b | 如果\(a大于\)b返回true |
<= | 小于等于 | \(a <= \)b | 如果\(a小于等于\)b返回true |
>= | 大于等于 | \(a >= \)b | 如果\(a大于等于\)b返回true |
<=> | 太空船 | \(a <=> \)b | 比較兩個表達式的大小 |
$a = 5;
$b = "5";
var_dump($a == $b); // bool(true),值相等
var_dump($a === $b); // bool(false),類型不同
var_dump($a != $b); // bool(false)
var_dump($a !== $b); // bool(true)
var_dump($a < 10); // bool(true)
var_dump($a > 3); // bool(true)
太空船運算符是PHP7新增的運算符,用于比較兩個表達式:
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 字符串比較也適用
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
邏輯運算符用于組合條件語句,PHP支持以下邏輯運算符:
運算符 | 名稱 | 示例 | 結果 |
---|---|---|---|
and | 邏輯與 | \(a and \)b | 如果\(a和\)b都為true返回true |
or | 邏輯或 | \(a or \)b | 如果\(a或\)b有一個為true返回true |
xor | 邏輯異或 | \(a xor \)b | 如果\(a或\)b有且僅有一個為true返回true |
&& | 邏輯與 | \(a && \)b | 與and相同,但優先級更高 |
|| | 邏輯或 | \(a \|\| \)b | 與or相同,但優先級更高 |
! | 邏輯非 | !$a | 如果$a不為true返回true |
$a = true;
$b = false;
var_dump($a and $b); // bool(false)
var_dump($a or $b); // bool(true)
var_dump($a xor $b); // bool(true)
var_dump(!$a); // bool(false)
var_dump($a && $b); // bool(false)
var_dump($a || $b); // bool(true)
邏輯運算符具有短路求值特性:
function foo() {
echo "foo called";
return false;
}
// 因為第一個操作數為false,&&運算符不會調用foo()
false && foo();
// 因為第一個操作數為true,||運算符不會調用foo()
true || foo();
PHP有兩個字符串運算符:
運算符 | 名稱 | 示例 | 結果 |
---|---|---|---|
. | 連接 | \(a . \)b | 連接\(a和\)b |
.= | 連接賦值 | \(a .= \)b | 將\(b連接到\)a后面 |
$str1 = "Hello";
$str2 = "World";
echo $str1 . " " . $str2; // 輸出"Hello World"
$str1 .= " PHP";
echo $str1; // 輸出"Hello PHP"
PHP提供了一些專門用于數組的運算符:
運算符 | 名稱 | 示例 | 結果 |
---|---|---|---|
+ | 聯合 | \(a + \)b | \(a和\)b的聯合 |
== | 相等 | \(a == \)b | 如果\(a和\)b具有相同的鍵/值對返回true |
=== | 全等 | \(a === \)b | 如果\(a和\)b具有相同的鍵/值對且順序和類型相同 |
!= | 不等 | \(a != \)b | 如果\(a不等于\)b返回true |
<> | 不等 | \(a <> \)b | 與!=相同 |
!== | 不全等 | \(a !== \)b | 如果\(a不全等于\)b返回true |
$a = ["a" => "apple", "b" => "banana"];
$b = ["a" => "pear", "b" => "banana", "c" => "cherry"];
// 聯合運算,保留左邊數組的鍵
$c = $a + $b;
print_r($c); // 輸出Array([a] => apple [b] => banana [c] => cherry)
// 數組比較
var_dump($a == $b); // bool(false)
var_dump($a === $b); // bool(false)
三元運算符是if-else語句的簡寫形式:
$age = 20;
$status = ($age >= 18) ? "成人" : "未成年";
echo $status; // 輸出"成人"
PHP7新增的空合并運算符用于簡化isset()檢查:
// 傳統寫法
$username = isset($_GET['user']) ? $_GET['user'] : 'guest';
// 使用空合并運算符
$username = $_GET['user'] ?? 'guest';
@運算符用于抑制表達式可能產生的錯誤信息:
$file = @file('non_existent_file'); // 不會顯示錯誤信息
當多個運算符出現在同一個表達式中時,PHP會按照運算符優先級來決定運算順序。以下是一些常見運算符的優先級(從高到低):
可以使用括號來明確指定運算順序:
$a = 1 + 2 * 3; // 7 (乘法優先級高于加法)
$b = (1 + 2) * 3; // 9 (括號改變優先級)
PHP提供了豐富的運算符類型,包括:
掌握這些運算符的用法和優先級是編寫高效PHP代碼的基礎。在實際開發中,合理使用運算符可以簡化代碼并提高可讀性。建議開發者通過大量練習來熟悉各種運算符的行為特性,特別是類型轉換和比較運算中的特殊情況。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。