在 PHP 中,你可以使用 isset()
函数来判断一个变量是否已经设置并且不是 NULL
。对于你的情况,如果你想要检查在解码 JSON 数据后是否存在 base_resp
键,以下是如何正确地做到这一点的步骤:
首先,你需要解码 JSON 数据。这可以通过 json_decode()
函数完成。这个函数接受两个参数:JSON 字符串和一个布尔值(true
或 false
)。如果第二个参数为 true
,解码的结果将是一个关联数组。
base_resp
解码后,使用 isset()
对 base_resp
键进行检查。
这里是一个完整的示例,展示了如何检查 base_resp
是否被设置:
<?php
$data = '{
"id":"03ace37faceea9583dd97b59708c268f",
"created":1734193279,
"model":"abab5.5s-chat",
"object":"chat.completion",
"usage":{
"total_tokens":0,
"total_characters":0
},
"input_sensitive":false,
"output_sensitive":false,
"input_sensitive_type":0,
"output_sensitive_type":0,
"output_sensitive_int":0,
"base_resp":{
"status_code":1008,
"status_msg":"insufficient balance"
}
}';
// 解码 JSON 数据为关联数组
$result = json_decode($data, true);
// 检查是否解码成功以及 'base_resp' 是否存在
if (isset($result['base_resp'])) {
// 如果存在,访问 'base_resp' 的内容
echo "Base Resp Status Code: " . $result['base_resp']['status_code'];
echo "Base Resp Status Message: " . $result['base_resp']['status_msg'];
} else {
// 如果不存在
echo "'base_resp' not found or decoding failed";
}
?>
isset()
:isset()
函数检查指定的变量是否存在并已被初始化。如果 base_resp
键不存在于数组中,isset()
函数将返回 false
。json_decode($data, true)
返回的是一个关联数组,因此需要使用数组语法 ['key']
来访问 base_resp
。json_last_error()
检查 JSON 解码过程中是否发生错误。这个方法保证了你在尝试访问 base_resp
之前,它会已经被正确地识别和设置。这样就可以安全地读取 base_resp
下的 status_code
和 status_msg
了。