我有一个奇怪的问题。我的条件不起作用:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://maps.googleapis.com/maps/api/geocode/json? address='.urlencode($address).'&sensor=true');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
curl_close ($ch);
if($result !== null) {
$result = @json_decode($result, true);
$result = @$result['results'][0]['address_components'];
foreach($result as $key => $value) {
if($value['types'][0] == 'administrative_area_level_2')
return $value['long_name'];
}
} else {
throw new Exception('unable to look up the county');
}
我试过了
if($result)
if($result != null)
if($result != '')
if(!empty($result))
if(isset($result))
没有一个工作,脚本总是在块内,但 $result 的值为 null,我可以通过 xdebug 看到它。为什么会这样?
编辑:这是一个截图
这是 var_dump 显示的内容:
字符串'{“结果”:[],“状态”:“ZERO_RESULTS”}'(长度=52)
这修复了它:
$result = @json_decode($result, true);
if(!empty($result['results'])) {