PHP 運算子
在本教程中,你將學習如何使用 PHP 中的運算子對變數和值進行操作。
什麼是 PHP 中的運算子
運算子是告訴 PHP 處理器執行某些操作的符號。例如,加號(+
)是一個告訴 PHP 新增兩個變數或值的運算子,而大於號(>
)是一個告訴 PHP 比較兩個值的運算子。
以下列表描述了 PHP 中使用的不同運算子。
PHP 算術運算子
算術運算子用於執行常見的算術運算,例如加法,減法,乘法等。這裡是 PHP 算術運算子的完整列表:
運算子 | 描述 | 例 | 結果 |
---|---|---|---|
+ |
加法 | $x + $y |
$ x 和$ y 的和 |
- |
減法 | $x - $y |
$ x 和$ y 的差 |
* |
乘法 | $x * $y |
$ x 和$ y 的乘積 |
/ |
除法 | $x / $y |
$ x 除以$ y 的商 |
% |
求餘 | $x % $y |
$ x 除以$ y 的餘數 |
以下示例將向你展示這些算術運算子:
<?php
$x = 10;
$y = 4;
echo($x + $y); // 0utputs: 14
echo($x - $y); // 0utputs: 6
echo($x * $y); // 0utputs: 40
echo($x / $y); // 0utputs: 2.5
echo($x % $y); // 0utputs: 2
?>
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 |
以下示例將向你展示這些賦值運算子:
<?php
$x = 10;
echo $x; // Outputs: 10
$x = 20;
$x += 30;
echo $x; // Outputs: 50
$x = 50;
$x -= 20;
echo $x; // Outputs: 30
$x = 5;
$x *= 25;
echo $x; // Outputs: 125
$x = 50;
$x /= 10;
echo $x; // Outputs: 5
$x = 100;
$x %= 15;
echo $x; // Outputs: 10
?>
PHP 比較運算子
比較運算子用於以布林方式比較兩個值。
運算子 | 名稱 | 例 | 結果 |
---|---|---|---|
== |
等於 | $x == $y |
如果$ x 等於$ y,則為真 |
=== |
相同 | $x === $y |
如果$ x 等於$ y,則為真,並且它們屬於同一型別 |
!= |
不等於 | $x != $y |
如果$ x 不等於$ y,則為真 |
<> |
不等於 | $x <> $y |
如果$ x 不等於$ y,則為真 |
!== |
不等於 | $x !== $y |
如果$ x 不等於$ y,或者它們的型別不同,則為真 |
< |
少於 | $x < $y |
如果$ x 小於$ y,則為真 |
> |
大於 | $x > $y |
如果$ x 大於$ y,則為真 |
>= |
大於或等於 | $x >= $y |
如果$ x 大於或等於$ y,則為真 |
<= |
小於或等於 | $x <= $y |
如果$ x 小於或等於$ y,則為真 |
以下示例將向你展示這些比較運算子:
<?php
$x = 25;
$y = 35;
$z = "25";
var_dump($x == $z); // Outputs: boolean true
var_dump($x === $z); // Outputs: boolean false
var_dump($x != $y); // Outputs: boolean true
var_dump($x !== $z); // Outputs: boolean true
var_dump($x < $y); // Outputs: boolean true
var_dump($x > $y); // Outputs: boolean false
var_dump($x <= $y); // Outputs: boolean true
var_dump($x >= $y); // Outputs: boolean false
?>
PHP 遞增和遞減運算子
遞增/遞減運算子用於遞增/遞減變數的值。
運算子 | 名稱 | 影響 |
---|---|---|
++$x |
前遞增 | 將$ x 遞增 1,然後返回$ x |
$x++ |
後遞增 | 返回$ x,然後將$ x 遞增 1 |
--$x |
前遞減 | 將$ x 減 1,然後返回$ x |
$x-- |
後遞減 | 返回$ x,然後將$ x 減 1 |
以下示例將向你展示這些增量和減量運算子的執行情況:
<?php
$x = 10;
echo ++$x; // Outputs: 11
echo $x; // Outputs: 11
$x = 10;
echo $x++; // Outputs: 10
echo $x; // Outputs: 11
$x = 10;
echo --$x; // Outputs: 9
echo $x; // Outputs: 9
$x = 10;
echo $x--; // Outputs: 10
echo $x; // Outputs: 9
?>
PHP 邏輯運算子
邏輯運算子通常用於組合條件語句。
運算子 | 名稱 | 例 | 結果 |
---|---|---|---|
and |
與 | $x and $y |
如果$ x 和$ y 都為真,則為真 |
or |
或 | $x or $y |
如果$ x 或$ y 為真,則為真 |
xor |
異或 | $x xor $y |
如果$ x 或$ y 為真,則為真,但不是兩者都是 |
&& |
與 | $x && $y |
如果$ x 和$ y 都為真,則為真 |
` | ` | 或 | |
! |
非 | !$x |
如果$ x 不正確,則為真 |
以下示例將向你展示這些邏輯運算子:
<?php
$year = 2014;
// Leap years are divisible by 400 or by 4 but not 100
if(($year % 400 == 0) || (($year % 100 != 0) && ($year % 4 == 0))){
echo "$year is a leap year.";
} else{
echo "$year is not a leap year.";
}
?>
PHP 字串運算子
有兩個專門為字串設計的運算子。
``` php | 描述 | 例 | 結果 |
---|---|---|---|
. |
級聯 | $str1 . $str2 |
$ str1 和$ str2 的連線 |
.= |
連線分配 | $str1 .= $str2 |
將$ str2 追加到$ str1 |
以下示例將向你展示這些字串運算子:
<?php
$x = "Hello";
$y = " World!";
echo $x . $y; // Outputs: Hello World!
$x .= $y;
echo $x; // Outputs: Hello World!
?>
PHP 陣列運算子
陣列運算子用於比較陣列:
運算子 | 名稱 | 例 | 結果 |
---|---|---|---|
+ |
組合 | $x + $y |
$ x 和$ y 聯盟 |
== |
相等 | $x == $y |
如果$ x 和$ y 具有相同的鍵/值對,則為 True |
=== |
身分 | $x === $y |
如果$ x 和$ y 具有相同順序和相同型別的相同鍵/值對,則為 True |
!= |
不等 | $x != $y |
如果$ x 不等於$ y,則為真 |
<> |
不等 | $x <> $y |
如果$ x 不等於$ y,則為真 |
!== |
非身份 | $x !== $y |
如果$ x 與$ y 不同,則為真 |
以下示例將向你展示這些陣列運算子的執行情況:
<?php
$x = array("a" => "Red", "b" => "Green", "c" => "Blue");
$y = array("u" => "Yellow", "v" => "Orange", "w" => "Pink");
$z = $x + $y; // Union of $x and $y
var_dump($z);
var_dump($x == $y); // Outputs: boolean false
var_dump($x === $y); // Outputs: boolean false
var_dump($x != $y); // Outputs: boolean true
var_dump($x <> $y); // Outputs: boolean true
var_dump($x !== $y); // Outputs: boolean true
?>
PHP 7 中的 PHP Spaceship 運算子
PHP 7 引入了一個新的 Spaceship
operator(<=>
),可用於比較兩個表示式。它也被稱為組合比較運算子。
如果兩個運算元相等則返回 0
,如果左邊更大則返回 1
,如果右邊更大則返回 `-1。它基本上提供了三向比較,如下表所示:
運算子 | <=> 等效表達 |
---|---|
$x < $y |
($x <=> $y) === -1 |
$x <= $y |
`($x <=> $y) === -1 |
$x == $y |
($x <=> $y) === 0 |
$x != $y |
($x <=> $y) !== 0 |
$x >= $y |
`($x <=> $y) === 1 |
$x > $y |
($x <=> $y) === 1 |
以下示例將向你展示 Spaceship
運算子的實際工作方式:
<?php
// Comparing Integers
echo 1 <=> 1; // Outputs: 0
echo 1 <=> 2; // Outputs: -1
echo 2 <=> 1; // Outputs: 1
// Comparing Floats
echo 1.5 <=> 1.5; // Outputs: 0
echo 1.5 <=> 2.5; // Outputs: -1
echo 2.5 <=> 1.5; // Outputs: 1
// Comparing Strings
echo "x" <=> "x"; // Outputs: 0
echo "x" <=> "y"; // Outputs: -1
echo "y" <=> "x"; // Outputs: 1
?>