【PHP Telegram Bot】Day13 - 基础(2):数学运算与乱数

$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|float $num): int|float
ceil() 向上取整 ceil(int|float $num): float
floor() 向下取整 floor(int|float $num): float
round() 四舍五入 round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float
max() 取最大值 max(mixed $value, mixed ...$values): mixed
min() 取最小值 min(mixed $value, mixed ...$values): mixed
pow() 计算次方 pow(mixed $num, mixed $exponent): int|float|object
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

<<:  Day7:终於要进去新手村了-Javascript-新手开始

>>:  【Day 07】- 恶搞行程(Process)、键盘(Keyboard)大作战之序章

Day 16 ( 中级 ) 水底探照灯

水底探照灯 教学原文参考:水底探照灯 这篇文章会介绍,如何在 Scratch 3 里使用舞台九倍大角...

【Day27】建立一个 QA Bot

今天要来跟各位一起解析 QnA Maker Bot,以下简称 QA Bot。 今天是参考 官方范例程...

[D28] 资料增强

上一篇我们有提到 over-fitting,在进行深度学习训练时,经常需要大量的资料以确保训练时不会...

Day 13 : 基础套件的介绍-random,利用程序帮你做乱数选择

今天来介绍一下ramdom这个套件: random这个套件用来乱数选取,像是抽签机等等的小程序都需要...

[Day 39] 心情随笔後台及前台(一) - 心情随笔列表

心情随笔後台及前台 今天我们终於要进行心情随笔的部分, 首先是要建後台画面及功能, 我们的心情随笔就...