0

var_dumpが次のようなSOAP応答があります。

object(stdClass)[14]
  public 'GetClientsResult' => 
    object(stdClass)[15]

これを一生解析する方法がわかりません。これまでstdClassを使用したことはありません。

PHPでこの応答を解析するにはどうすればよいですか?

4

2 に答える 2

3

手始めに、それを配列にキャストできます(オブジェクトがに格納されていると仮定します$response):

$response = (array) $response;

または、次の方法でアクセスできます。

$response->GetClientResult->otherStuff;
于 2012-07-18T17:41:45.917 に答える
1

AnStdClassは、プロパティ値を設定および取得できる空のクラスです。例:

 <?php
 // $response is a normal array
 $response['GetClientResult'] = 'foo'; // set
 $response['GetClientResult']; // get

 // $response is a StdClass
 $response->GetClientResult = 'foo'; // set
 $response->GetClientResult; // get
 ?>

また、クラスを配列にキャストバックする場合は、次を使用できます。

$response = (array) $response

また、複数のStdClassがあるため、これを再帰的に実行する場合は、次のようにします。

function StdClass2array(StdClass $class)
{
    $array = array();

    foreach ($class as $key => $item)
    {
            if ($item instanceof StdClass) {
                    $array[$key] = StdClass2array($item);
            } else {
                    $array[$key] = $item;
            }
    }

    return $array;
}
于 2012-07-18T17:47:36.943 に答える