iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
$x = 3 + 2 * 8 - 2 ** 3;
echo $x; // 11

在程式裡最常做的事之一就是數學運算
來看看 PHP 運算時常會用到的東西吧

運算子

a = b + c

  • a, b, c 稱為運算元(Operant)
  • = 和 + 為運算子(Operator)
  • 整個式子 a = b + c 就是運算式(Expression)
算數運算子 說明 用法
+ 相加 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

上一篇
【PHP Telegram Bot】Day12 - 基礎(1):變數、常數與資料型態
下一篇
【PHP Telegram Bot】Day14 - 基礎(3):字串處理與正規表示式 Regex
系列文
用 PHP 打造專屬於自己的 Telegram 聊天機器人吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言