2 つの json オブジェクトのうちの 1 つを受け取る場合があります。この場合は、Google ジオコード API または Places API から取得します。
ジオコーディング API から値にアクセスすると、次のようになります。
$coordinates = $data->results[0]->geometry->location;
$cache_value['lat'] = (string) $coordinates->lat;
$cache_value['lng'] = (string) $coordinates->lng;
場所の構造もほぼ同じです。
$coordinates = $data->result->geometry->location;
$cache_value['lat'] = (string) $coordinates->lat;
$cache_value['lng'] = (string) $coordinates->lng;
私のコードでは、それぞれのケースを処理する 2 つの関数がありますが、それらはresult
vsresults[0]
を除いてほぼ同一であり、それらを結合したいと考えています。変数を渡そうとしましたが、エラーがスローされます:
$result = ($place) ? 'result' : 'results[0]';
$coordinates = $data->$result->geometry->location;
以下を与える:
知らせ: Undefined property: stdClass::$result[0]
この質問のタイトルが少し不正確なので、何を達成するための正しい構文と、命名法に関する指針を知りたいです。