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

PHP json_decode转关联数组时false值打印异常及取值问题

现象说明

这个表现完全正常,不存在JSON解析错误。
print_r输出中[ok] =>后显示为空,是PHP原生输出特性导致的:print_r打印布尔类型的false值时,不会输出false字符串,会直接留空。如果需要查看值的真实类型和内容,换用var_dump($messaggio)即可,输出会明确显示["ok"]=> bool(false),和预期的解析结果完全一致。

正确获取字段值的方式

直接通过关联数组下标取值即可,注意判断布尔值时使用严格比较,避免其他空值造成逻辑误判:

$messaggio = '{"ok":false,"error_code":400,"description":"Bad Request"}';
$messaggio = json_decode($messaggio, true);

// 可选:增加解析合法性校验,避免异常JSON格式导致程序报错
if (json_last_error() !== JSON_ERROR_NONE) {
    throw new Exception("JSON解析失败:" . json_last_error_msg());
}

// 取出ok字段值存入变量
$isOk = $messaggio['ok'];

// 严格判断值做业务逻辑
if ($isOk === false) {
    $errorCode = $messaggio['error_code'];
    $errorDesc = $messaggio['description'];
    echo "请求失败,错误码:{$errorCode},错误信息:{$errorDesc}";
}

注意:不要用松散比较(比如if (!$isOk))判断该字段,否则当字段值为0、空字符串、null时也会进入失败逻辑,和接口实际语义不符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:21:23