php报错Inf and NaN cannot be JSON encoded怎么处理

在 PHP 中,如果尝试将 Inf**(正无穷大)** 和 NaN**(不是数字)**这样的特殊值直接用json_encode转换为 JSON 格式,就会出现报错 "Inf and NaN cannot be JSON encoded"。要处理这个问题,可以采取以下方法之一:

1、转换为有效的 JSON 值:将 Inf 和 NaN 替换为 JSON 支持的有效值

例如,将 Inf 替换为一个很大的数值(例如 999999999),将 NaN 替换为 null 或者字符串 "NaN"。

示例代码:

php 复制代码
$value = INF; // Inf or NaN value
// Convert Inf and NaN to valid JSON values
if (is_infinite($value)) {
    $value = 99999999; // Replace Inf with a large number
} elseif (is_nan($value)) {
    $value = 'NaN'; // Replace NaN with string "NaN"
}
$jsonData = json_encode($value);
echo $jsonData;

2、在json_encode函数中使用 JSON_PARTIAL_OUTPUT_ON_ERROR 选项

在 PHP 7.1 及更高版本中,可以通过设置 JSON_PARTIAL_OUTPUT_ON_ERROR 选项来避免报错,并将 Inf 和 NaN 编码为 null。

示例代码:

php 复制代码
$value = INF; // Inf or NaN value
$jsonData = json_encode($value, JSON_PARTIAL_OUTPUT_ON_ERROR);
echo $jsonData;
相关推荐
汉堡包0017 小时前
【网安基础】--内网代理转发基本流程(正向与反向代理)
安全·web安全·php
梁辰兴10 小时前
计算机网络基础:TCP 的拥塞控制
tcp/ip·计算机网络·php·tcp·拥塞控制·计算机网络基础·梁辰兴
Vect__16 小时前
TCP Socket编程详解
网络协议·tcp/ip·php
REDcker16 小时前
TCP 拥塞控制算法详解:CUBIC、BBR 及传统算法
tcp/ip·算法·php
小学导航员18 小时前
VMWARE虚拟机上不了网络
服务器·网络·php
上海合宙LuatOS19 小时前
LuatOS ——fota 升级教程
开发语言·人工智能·单片机·嵌入式硬件·物联网·php·硬件工程
AI量化价值投资入门到精通20 小时前
数据清洗:大数据领域的必备技能
大数据·开发语言·ai·php
小邓睡不饱耶1 天前
基于Spark GraphX构建用户信任网络:精准定位高价值目标用户
大数据·spark·php
toooooop81 天前
php BC MATH扩展函数计算精度-第三个参数
开发语言·php
青岑CTF1 天前
攻防世界-Php_rce-胎教版wp
开发语言·安全·web安全·网络安全·php