1

私は返すeBay APIを使用しています:

DTS\eBaySDK\Types\RepeatableType Object
(
    [data:DTS\eBaySDK\Types\RepeatableType:private] => Array
        (
            [0] => 60
        )

    [position:DTS\eBaySDK\Types\RepeatableType:private] => 0
    [class:DTS\eBaySDK\Types\RepeatableType:private] => DTS\eBaySDK\Shopping\Types\NameValueListType
    [property:DTS\eBaySDK\Types\RepeatableType:private] => Value
    [expectedType:DTS\eBaySDK\Types\RepeatableType:private] => string
)

...そして、次のようにアクセスしようとすると:

echo $ItemSpecific->Value->{0};

...次のエラーが表示されます。

Notice: 未定義のプロパティ: DTS\eBaySDK\Types\RepeatableType::$0 in ...

4

2 に答える 2

1

私はこれと同じ問題に遭遇することがあります。問題は、解析したい情報がオブジェクトのプライベート プロパティのように見えることです。オブジェクトのプライベート プロパティは、オブジェクトに限定されます。プライベート プロパティを取得してオブジェクト内でパブリック関数を呼び出し、値を出力する標準的な方法。そのような関数は存在しない可能性が高いため、情報を解析できません。

ただし、これらのルールは PHP の領域でのみ適用されます。この情報を静的な値に変更すると、これらのルールは適用されなくなります。

<?php
function parse($obj, $start="[", $end = "]"){
    $string = json_encode($obj);
    $s = strpos($string, $start) + 1;
    $e = strpos($string, $end);
    $diff = $e - $s;
    return substr($string, $s, $diff);
}

  echo parse($ItemSpecific->Value);

API の正確な結果のサンプルがないため、パラメータを少し変更する必要があるかもしれませんが、この一般的な考え方で問題は解決するはずです。

于 2016-12-08T04:28:34.743 に答える