$x = 3 + 2 * 8 - 2 ** 3; echo $x; // 11
在程式裡最常做的事之一就是數學運算
來看看 PHP 運算時常會用到的東西吧
a = b + c
算數運算子 | 說明 | 用法 |
---|---|---|
+ |
相加 | x + y |
- |
相減 | x − y |
* |
相乘 | x * y |
/ |
相除 | x / y |
% |
取餘數 | x % y |
** |
指數運算 | x ** y |
$x = 5;
$y = 3;
echo $x + $y, "\n"; // 8
echo $x - $y, "\n"; // 2
echo $x * $y, "\n"; // 15
echo $x / $y, "\n"; // 1.66
echo $x % $y, "\n"; // 2
echo $x ** $y, "\n"; // 125
賦值運算子 | 說明 | 用法 |
---|---|---|
= |
賦值 | x = y |
+= |
相加並賦值 | x += y |
-= |
相減並賦值 | x −= y |
*= |
相乘並賦值 | x ∗= y |
/= |
相除並賦值 | x /= y |
%= |
取餘數並賦值 | x %= y |
**= |
指數運算並賦值 | x **= y |
$x = 5;
$x += 3;
echo $x, "\n"; // 8
$x -= 2;
echo $x, "\n"; // 6
$x *= 6;
echo $x, "\n"; // 36
$x /= 4;
echo $x, "\n"; // 9
$x %= 5;
echo $x, "\n"; // 4
$x **= 2;
echo $x, "\n"; // 16
比較運算子 | 說明 | 用法 |
---|---|---|
== |
相等(值) | x == y |
!= |
不相等(值) | x != y |
=== |
相等(型別 and 值) | x === y |
!== |
不相等(型別 or 值) | x !== y |
< |
小於 | x < y |
> |
大於 | x > y |
>= |
大於 or 等於 | x >= y |
<= |
小於 or 等於 | x <= y |
<> |
大於 or 小於 | x <> y |
<=> |
小於返回 -1, 等於返回 0, 大於返回 1 | x <=> y |
var_dump(1 == '1'); // bool(true)
var_dump(1 != '1'); // bool(false)
var_dump(1 === '1'); // bool(false)
var_dump(1 !== '1'); // bool(true)
var_dump(2 < 3); // bool(true)
var_dump(2 > 3); // bool(false)
var_dump(2 >= 2); // bool(true)
var_dump(2 <= '2'); // bool(true)
var_dump(2 <> 3); // bool(true)
var_dump(2 <=> 3); // int(-1)
遞增/遞減運算子 | 說明 |
---|---|
++$x |
先遞增 |
$x++ |
後遞增 |
--$x |
先遞減 |
$x-- |
後遞減 |
$a = 1;
$b = $a++;
echo $a, "\n"; // 2
echo $b, "\n"; // 1
$a = 1;
$b = ++$a;
echo $a, "\n"; // 2
echo $b, "\n"; // 2
函式 | 說明 | 用法 |
---|---|---|
abs() |
取絕對值 | `abs(int |
ceil() |
向上取整 | `ceil(int |
floor() |
向下取整 | `floor(int |
round() |
四捨五入 | `round(int |
max() |
取最大值 | max(mixed $value, mixed ...$values): mixed |
min() |
取最小值 | min(mixed $value, mixed ...$values): mixed |
pow() |
計算次方 | `pow(mixed $num, mixed $exponent): int |
echo abs(-3), "\n"; // 3
echo ceil(2.4), "\n"; // 3
echo floor(2.5), "\n"; // 2
echo round(2.4), "\n"; // 2
echo round(2.5), "\n"; // 3
echo ceil(-0.6), "\n"; // -0
echo floor(-0.4), "\n"; // -1
echo round(-0.4), "\n"; // -0
echo round(-0.5), "\n"; // -1
echo max(2,8,5,7), "\n"; // 8
echo min(2,8,5,7), "\n"; // 2
echo pow(2,8), "\n"; // 256
所有數學函式:
https://www.php.net/manual/en/ref.math.php
rand(int $min, int $max): int
mt_rand(int $min, int $max): int
在 php >= 7.1,rand
mt_rand
兩者是相等的
返回 0 ~ mt_getrandmax() 的整數,在 max < min 時返回 false
echo rand(), "\n"; // 0 ~ 2147483647
echo rand() / mt_getrandmax(), "\n"; // 0 ~ 1
echo rand(5, 15), "\n"; // 5 ~ 15