You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求解释PHP代码中项目进度百分比的计算逻辑

项目进度百分比计算代码详解

先梳理这段代码的整体逻辑:它从数据库获取当前项目的总任务数和已完成任务数,计算项目完成进度百分比,再把数字格式化为更友好的显示形式。

前置关键变量(进度计算的基础数据)

先看这两行获取数据的代码:

// 获取当前项目的总任务数量
$tprog = $conn->query("SELECT * FROM task_list where project_id = {$row['id']}")->num_rows;
// 获取当前项目中状态为3(标记为已完成)的任务数量
$cprog = $conn->query("SELECT * FROM task_list where project_id = {$row['id']} and status = 3")->num_rows;

第一行:计算进度百分比

$prog = $tprog > 0 ? ($cprog/$tprog) * 100 : 0;

这是PHP的三元运算符,等价于下面的if-else写法:

if ($tprog > 0) {
    // 总任务数大于0时,用「已完成数÷总数」×100,得到百分比数值
    $prog = ($cprog / $tprog) * 100;
} else {
    // 如果总任务数为0,直接把进度设为0(避免出现除以0的致命错误)
    $prog = 0;
}

核心作用是规避除以0的报错,同时算出真实的进度占比。


第二行:格式化进度数字

$prog = $prog > 0 ? number_format($prog,2) : $prog;

同样是三元运算符,作用是优化数字的显示效果:

if ($prog > 0) {
    // 进度大于0时,把数字格式化为保留两位小数的形式
    // 比如原本是33.33333,会变成33.33,显示更规整
    $prog = number_format($prog, 2);
} else {
    // 进度为0时,保持原样(无需格式化)
    $prog = $prog;
}

number_format()是PHP内置函数,专门用来调整数字的小数位数、千位分隔符等格式。

内容的提问来源于stack exchange,提问作者portfox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:59:56