You need to enable JavaScript to run this app. PHP非数值报错修复:custom_point.php第257行减法运算异常求助
优惠活动
大模型
产品
解决方案
定价
更多

PHP非数值报错修复:custom_point.php第257行减法运算异常求助

问题原因

报错是因为执行减法运算的$duration和$stored_date至少有一个为非数值类型,触发了PHP 7.1及以上版本的非数值运算警告:

  • 代码里的$duration通过WordPress核心函数get_option()取值,该函数默认返回字符串格式,哪怕后台设置项存的是数字,取出后也是字符串类型,无法直接参与数值运算。
  • 另外需要确认$stored_date的取值逻辑,正常按注释里的时间差计算逻辑,它应该是Unix时间戳格式的整数,要是它实际是日期字符串,也会触发该报错。
修复方案

对两个变量先做类型转换后再参与运算,修复后的代码如下:

$duration = get_option("wc_settings_tab_period_of_changes",true);
// 转为整数类型,可根据业务需要调整默认值,这里默认值为0
$duration = intval($duration);
// 确保$stored_date为整数格式的时间戳,如果$stored_date原本是日期字符串,替换为$stored_date = strtotime($stored_date);
$stored_date = intval($stored_date);

$diff = $duration - $stored_date;
//$diff = abs(round($diff / 86400));
if($duration == 0) {
    // 原有后续逻辑
}

如果有业务校验需要,还可以在运算前增加合法性判断,避免无效值干扰后续逻辑:

if ($duration > 0 && $stored_date > 0) {
    $diff = $duration - $stored_date;
} else {
    // 自定义非法值处理逻辑,比如给$diff赋默认值
    $diff = 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 01:36:01