我正在使用PHP从JSON获取数据,当我使用array_key_exists测试JSON中的密钥以确保它存在时,它不会返回任何内容。以下是图书馆的链接:https://api.edmunds.com/api/vehicle/v2/vins/4T1BK1EB6DU056165?&fmt=json&api_key=zzasv56vxwkx67m9cy6apfmq 当我试图像这样运行时,我什么也得不到:
if(array_key_exists('years[0]->year', $jfo)) {
$mds = $jfo->years[0]->year;
}else{
$mds="mds not found";
}
这种方式有效:
$mds = $jfo->years[0]->year;
答案 0 :(得分:0)
假设您确定设置后该值不是NULL
,那么isset()
可以提供更好的服务。像
if( isset($jfo->years)
&& is_array($jfo->years)
&& isset($jfo->years[0]->year)
){
$mds = $jfo->years[0]->year;
}else{
$mds = 'mds not found';
}
或者,如果你想减少冗长,并确保$jfo->years
将是一个数组。
$mds = isset($jfo->years[0]->year) ? $jfo->years[0]->year : 'mds not found';
或者,如果你正在运行php> = 7并且想要更简洁。
$mds = $jfo->years[0]->year ?? 'mds not found';