算术运算符 #

一、基本算术运算符 #

1.1 运算符列表 #

运算符 名称 示例 结果
+ 加法 $a + $b 两数之和
- 减法 $a - $b 两数之差
* 乘法 $a * $b 两数之积
/ 除法 $a / $b 两数之商
% 取模 $a % $b 余数
** 幂运算 $a ** $b $a的$b次方

1.2 基本运算 #

php
<?php
$a = 10;
$b = 3;

echo $a + $b;
echo $a - $b;
echo $a * $b;
echo $a / $b;
echo $a % $b;
echo $a ** $b;

二、加法运算符 #

2.1 数字加法 #

php
<?php
echo 10 + 20;
echo 10.5 + 20.5;
echo -5 + 10;

2.2 字符串数字加法 #

php
<?php
echo "10" + 20;
echo "10.5" + 20;
echo "10abc" + 20;
echo "abc" + 20;

2.3 数组加法(联合) #

php
<?php
$a = ['a' => 1, 'b' => 2];
$b = ['b' => 3, 'c' => 4];

$result = $a + $b;
print_r($result);

三、减法运算符 #

php
<?php
echo 20 - 10;
echo 10.5 - 5.5;
echo -5 - 10;
echo "20" - 10;

四、乘法运算符 #

php
<?php
echo 10 * 3;
echo 2.5 * 4;
echo -3 * 4;
echo "10" * 3;

五、除法运算符 #

5.1 基本除法 #

php
<?php
echo 10 / 2;
echo 10 / 3;
echo 10 / 4;

5.2 整数除法 #

PHP 7+ 提供整数除法函数:

php
<?php
echo intdiv(10, 3);
echo intdiv(-10, 3);

5.3 除以零 #

php
<?php
echo 10 / 0;

echo 10 / 0.0;

六、取模运算符 #

6.1 基本取模 #

php
<?php
echo 10 % 3;
echo 10 % 2;
echo -10 % 3;
echo 10 % -3;

6.2 取模结果符号 #

结果符号与被除数相同:

php
<?php
echo -10 % 3;
echo 10 % -3;

6.3 浮点数取模 #

php
<?php
echo fmod(10.5, 3);

6.4 常见应用 #

判断奇偶:

php
<?php
function isEven(int $n): bool
{
    return $n % 2 === 0;
}

function isOdd(int $n): bool
{
    return $n % 2 !== 0;
}

循环周期:

php
<?php
for ($i = 0; $i < 10; $i++) {
    if ($i % 3 === 0) {
        echo "第 $i 次(每3次输出)\n";
    }
}

七、幂运算符 #

7.1 基本幂运算 #

php
<?php
echo 2 ** 3;
echo 2 ** 10;
echo 4 ** 0.5;
echo 8 ** (1/3);

7.2 负指数 #

php
<?php
echo 2 ** -2;
echo 10 ** -1;

7.3 pow() 函数 #

php
<?php
echo pow(2, 10);
echo pow(4, 0.5);

八、自增与自减 #

8.1 运算符 #

运算符 名称 效果
++$a 前置自增 先加1,再返回
$a++ 后置自增 先返回,再加1
–$a 前置自减 先减1,再返回
$a– 后置自减 先返回,再减1

8.2 前置与后置区别 #

php
<?php
$a = 5;
echo ++$a;
echo $a;

$a = 5;
echo $a++;
echo $a;
php
<?php
$a = 5;
echo --$a;
echo $a;

$a = 5;
echo $a--;
echo $a;

8.3 在表达式中使用 #

php
<?php
$a = 5;
$b = $a++ * 2;
echo "a = $a, b = $b";

$a = 5;
$b = ++$a * 2;
echo "a = $a, b = $b";

8.4 字符串自增 #

php
<?php
$s = 'a';
echo ++$s;
echo ++$s;

$s = 'z';
echo ++$s;

$s = 'A';
echo ++$s;

$s = 'Z';
echo ++$s;

九、一元负号 #

php
<?php
$a = 5;
echo -$a;
echo -(-$a);

$b = -10;
echo -$b;

十、数学函数 #

10.1 取整函数 #

php
<?php
echo floor(3.7);
echo ceil(3.2);
echo round(3.5);
echo round(3.4);
echo round(3.456, 2);
echo (int) 3.7;

10.2 绝对值 #

php
<?php
echo abs(-5);
echo abs(-3.14);
echo abs(5);

10.3 最大最小值 #

php
<?php
echo max(1, 2, 3, 4, 5);
echo min(1, 2, 3, 4, 5);

$arr = [1, 5, 3, 2, 4];
echo max($arr);
echo min($arr);

10.4 随机数 #

php
<?php
echo rand();
echo rand(1, 100);
echo mt_rand();
echo mt_rand(1, 100);
echo random_int(1, 100);

10.5 三角函数 #

php
<?php
echo sin(M_PI / 2);
echo cos(0);
echo tan(M_PI / 4);
echo deg2rad(90);
echo rad2deg(M_PI / 2);

10.6 对数与指数 #

php
<?php
echo log(10);
echo log(100, 10);
echo log10(100);
echo exp(1);

10.7 平方根 #

php
<?php
echo sqrt(16);
echo sqrt(2);
echo hypot(3, 4);

十一、运算中的类型转换 #

11.1 自动转换 #

php
<?php
echo 10 + "20";
echo 10 + 2.5;
echo "10.5" + 2.5;
echo 10 + true;
echo 10 + false;

11.2 转换规则 #

操作数类型 结果类型
int + int int
int + float float
float + float float
string(数字) + int int/float
string(非数字) + int int(0)

十二、精度问题 #

12.1 浮点数精度 #

php
<?php
$a = 0.1 + 0.2;
$b = 0.3;

var_dump($a == $b);
var_dump(abs($a - $b) < 0.00001);

12.2 使用BCMath #

php
<?php
$a = bcadd('0.1', '0.2', 2);
echo $a;

echo bcsub('1.0', '0.9', 2);
echo bcmul('0.1', '0.2', 2);
echo bcdiv('1.0', '3', 2);

十三、总结 #

本章学习了:

  • 基本算术运算符:+、-、*、/、%、**
  • 自增自减运算符:++、–
  • 数学函数的使用
  • 浮点数精度问题
  • BCMath扩展

下一章将学习比较运算符。

最后更新:2026-03-26