0

FedEx の API を使用して店舗の「ドロップオフ」場所を見つけ、マップ API (Google) を使用して表示します。

API は機能していますが、オブジェクト指向配列に慣れていないため、問題が発生しています。

マップ API に値を渡すことができるように、値を一意の変数として配列に格納したいと考えています。

私は以下のようなことを達成しようとしています:

<?php

// MY "IDEAL" solution - any other ideas welcome
// (yes, reading up on Object Oriented PHP is on the to-do list...)

$response = $client ->fedExLocator($request);

if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR')
{
    $response -> BusinessAddress -> StreetLines[0] = $location_0;
    $response -> BusinessAddress -> StreetLines[1] = $location_1;
    $response -> BusinessAddress -> StreetLines[2] = $location_2;
}

?>

作業中の FedEx コード サンプル:

<?php

$response = $client ->fedExLocator($request);

if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR')
{
    echo 'Dropoff Locations<br>';
    echo '<table border="1"><tr><td>Streetline</td><td>City</td><td>State</td><td>Postal Code</td><td>Distance</td></tr>';
    foreach ($response -> DropoffLocations as $location)
    {
        if(is_array($response -> DropoffLocations))
        {
            echo '<tr>';
            echo '<td>'.$location -> BusinessAddress -> StreetLines. '</td>';
            echo '<td>'.$location -> BusinessAddress -> PostalCode. '</td>';
            echo '</tr>';
        }
        else
        {
            echo $location . Newline;
        }
    }
    echo '</table>';
}

?>
4

1 に答える 1

1

OK、私が知る限り、$responseオブジェクトには 2 つのメンバーがあります。$response->HighestSeverityは文字列で、$response->DropoffLocationsは配列です。$response->DropoffLocations単なる配列であり、表面上は何も派手ではありません。エントリは角括弧 (例: $response->DropoffLocations[0]etc) で参照できますforeach

配列がオブジェクトのメンバーであるという事実を除いて、配列に関する「オブジェクト指向」の唯一の点は、そのエントリが単純な値ではなくオブジェクトであることです。

DropoffLocationsその結果、インデックスを間違った場所に配置しています (そして完全に欠落しています)。たとえば、これの代わりに:

$response -> BusinessAddress -> StreetLines[0] = $location_0;

次のように、それ自体にインデックスを付け$response->DropoffLocationsてから、各エントリからメンバー変数をプルする必要があります。

$response -> DropoffLocations[0] -> BusinessAddress -> StreetLines = $location_0;

ただし、@PeterGluck のコメントに注意してください。その値を何かに設定したいと思うことはほとんどありません。

于 2012-08-14T21:15:50.397 に答える