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;
相关推荐
michaelzhouh17 小时前
php调用大模型应用接口实现流式输出以及数据过滤
开发语言·php·php调用大模型api流式输出
阿里云云原生18 小时前
如何使用通义灵码完成PHP单元测试 - AI辅助开发教程
php
API小爬虫1 天前
利用 PHP 爬虫获取京东商品详情 API 返回值说明及代码示例
android·爬虫·php
wniuniu_1 天前
Pow工作量证明是啥
开发语言·区块链·php
JioJio~z2 天前
网络基础-路由技术和交换技术以及其各个协议
网络·智能路由器·php
雯0609~2 天前
PHP:将关联数组转换为索引数组的完整示例
android·oracle·php
onejason2 天前
如何解析商品的价格信息?
前端·后端·php
林十一npc2 天前
ShopXO v2.2.4开源商城手动部署(保姆级)+异常处理
软件测试·数据库·mysql·php·商城·云服务器·shopxo
亿坊电商2 天前
不同PHP框架之间的兼容性问题及应对策略!
开发语言·php·php框架
憋废话_开码2 天前
phpstrom 配置调试 php 项目全流程,弄清一些概念
开发语言·php