奇妙な問題があります。私の条件が機能していません:
$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'])) {