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

PHP中判断变量为空或0时执行对应逻辑处理进度条百分比问题

现有代码存在的问题

  • 执行顺序错误:除法计算$percent = $x/$y写在了判断$y是否合法的逻辑之前,当$y为0或null时,会直接触发除零错误/警告,导致代码提前运行异常。
  • 判断逻辑互斥性缺失:两处if是独立判断没有用else关联,因为$y已经在前面完成赋值,哪怕$y是空值,isset($y)也会返回true,第二处if的赋值会直接覆盖第一处if的$text = '0'结果,空值判断完全失效。
  • 边界场景遗漏:没有判断$y为有效值、但$x为null/空的场景,此时除法计算也会产生非预期结果。
  • 注释错误:第二处if判断的注释提及的$var变量不存在,属于无效注释。

修复后的代码

调整逻辑执行顺序,先做合法性校验,再计算百分比,用互斥判断覆盖所有边界场景:

case 'supplyper':
    $x = $coin->available_supply;
    $y = $coin->total_supply;
    $text = '0'; // 初始化默认值
    
    // 先校验total_supply是否合法(非0、非null、为数值类型)
    if (!empty($y) && is_numeric($y)) {
        // 再处理available_supply的合法性
        $valid_x = (!empty($x) && is_numeric($x)) ? $x : 0;
        $percent = $valid_x / $y;
        $percent_friendly = number_format($percent * 100, 0) . '%'; // 可修改第二个参数调整小数位数
        $text = $percent_friendly;
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:27:03