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;
相关推荐
编程小Y4 小时前
php.ini 的核心作用与全面解析
开发语言·php
saber_andlibert8 小时前
【docker】网络基础和容器编排
网络·docker·php
互亿无线明明9 小时前
如何为全球业务构建可扩展的“群发国际短信接口”?
java·c++·python·golang·eclipse·php·erlang
用户607320369459 小时前
PHP Parse error: syntax error 5分钟带你解决语法错误
php
4311媒体网11 小时前
php和c++哪个更好学?C++难学吗?
java·c++·php
catchadmin11 小时前
现代高效 PHP 开发的最佳实践
开发语言·后端·php
JienDa13 小时前
JienDa聊PHP:PHP 8革命性特性深度实战报告:枚举、联合类型与Attributes的工程化实践
android·开发语言·php
JSON_L13 小时前
PHP安装GMP扩展
开发语言·php
Protein_zmm14 小时前
第二章 应用层(套接字编程)
开发语言·计算机网络·php
专业开发者14 小时前
Android 位置服务(LBS)客户支持指南
开发语言·php