У меня есть метод в службе CF 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 работает нормально, так как это правильные результаты, но я не знаю, как легко (что-то вроде того, что я пробовал выше ...) получить доступ к ним из возвращаемого массива.
Я довольно долго искал решение, но не нашел ничего, что бы работало.Любая помощь будет принята с благодарностью, спасибо.
РЕДАКТИРОВАТЬ: Хорошо, так что решение:
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";
}
Спасибо за ваши ответы.