私は、データベースから情報を抽出し、その情報をPHPサイトに単純なオブジェクトの配列として渡すC#WCFサービスのメソッドを持っています。WCFからPHPにオブジェクトの配列を渡す - 情報を抽出する
public class Person
{
public int Id;
public string Name;
public string Lastname;
public string Phone;
}
...
public Person[] GetPerson(){...}
私はPHPと本当に良いじゃないので、私の問題がある:私は物事のPHPの終了時に配列から情報を抽出するにはどうすればよいですか?私が得る最も一般的なエラーは次のとおりです。配列として型stdClassのオブジェクトを使用することはできません。私はいろいろなことを試みました。単純なPHPコードの断片:
<?php
$client = new SoapClient("http://localhost:62532/Service1.svc?wsdl");
$ws = $client->GetPerson();
$wsr = $ws->GetPersonResult;
for($i = 0; $i < count($wsr); $i++)
{
echo $wsr[$i]->Id . "\n";
echo $wsr[$i]->Name . "\n";
echo $wsr[$i]->Lastname . "\n";
echo $wsr[$i]->Phone . "\n";
}
?>
動作しません。私は呼び出すとき:
print_r($wsr);
方法は私が得る返さ何の結果をチェックするために:として、
stdClass Object
([Person] => Array (
[0] => stdClass Object (
[Id] => 1 [Name] => John [Lastname] => Abc [Phone] => 759687364)
[1] => stdClass Object (
[Id] => 2 [Name] => Joe [Lastname] => Def [Phone] => 487512654)
[2] => stdClass Object (
[Id] => 3 [Name] => Mike [Lastname] => Ghi [Phone] => 874587918)
[3] => stdClass Object (
[Id] => 5 [Name] => Nick [Lastname] => Jkl [Phone] => 000000000)
)
)
だから、その結果に基づいて、WCFとPHPの間の全体のデータ交換が正常に動作しますそれらは正しい結果ですが、私は簡単に(上で試したことのある行に沿った何か)、返されている配列内からそれらにアクセスする方法がわかりません。
私はかなり解決策を探しましたが、うまくいくものは見つかりませんでした。どんな助けでも大変感謝します。
EDIT:あなたの答えのための
for($i = 0; $i < count($wsr->Person); $i++)
{
echo $wsr->Person[$i]->Id . "\n";
echo $wsr->Person[$i]->Name . "\n";
echo $wsr->Person[$i]->Lastname . "\n";
echo $wsr->Person[$i]->Phone . "\n";
}
ありがとう:[OK]を、解決策があるそう。あなたのSOAPオブジェクトになるだろう「クラスマップ」を使用して使用$wsr->Person[$i]->Id
が、これは非常に有用だったと働いていた、ありがとうございます。 – mishlen
私にも有益な答えです...答えとしてマークされているはずです。 –