Объект PHP имеет значения, но когда я пытаюсь использовать его в FOREACH (), я получаю значение NULL - PullRequest
0 голосов
/ 25 июня 2010

Я пишу php-приложение, которое взаимодействует с SOAP API компании.Я вызываю одну из функций API и получаю объект обратно.Однако, когда я пытаюсь использовать foreach для одной из переменных объектов, я получаю сообщение об ошибке:

Предупреждение: неверный аргумент для foreach () в ...

Мой код:

// Make Call and get result
$result = $soapClient->GetProgramSemesterCategoryList(array("semesterGuid" => "8725a32b-e671-4386-ae70-969a6d600f31"));

// Output the result
print("<b>Result = ");
print_r($result);
print("</b></br>");

// Make sure not getting an exception
if($result->GetProgramSemesterCategoryListResult->IsException)
{
    print("Error!");
}
else
{
    // Output the type of the CategoryInfo in the object
    print("<b>TYPE: " . gettype($result->GetProgramSemesterCategoryList->Value->CategoryInfo) . "</b></br>");
    foreach($result->GetProgramSemesterCategoryList->Value->CategoryInfo as $category)
    {
        print("<b>Categories for this Semester</b></br>");

        print("<b>CategoryId:</b> " . $category->CategoryId . " - <b>CategoryGuid:</b> "
            . $category->CategoryName . " - <b>CategoryName:</b> " . $category->CategoryDesc
            . " - <b>ModuleFor:</b> " . $category->ModuleFor . "</br></br>");
    }
}

Вот возвращаемый объект для печати:

stdClass Object ( 
    [GetProgramSemesterCategoryListResult] => stdClass Object ( 
        [Value] => stdClass Object ( 
            [CategoryInfo] => Array ( 
                [0] => stdClass Object ( 
                    [CategoryId] => 9 
                    [CategoryGuid] => 7299eb49-d75a-4719-ae18-8ce814e99931 
                    [CategoryName] => Adult Swim Lessons 
                    [CategoryDesc] => New Category 
                    [ModuleFor] => PRG_Program_Registration 
                ) 
                [1] => stdClass Object ( 
                    [CategoryId] => 10 
                    [CategoryGuid] => 4117bbaf-7301-40b2-a149-76daca62b748 
                    [CategoryName] => Child Swim Lessons 
                    [CategoryDesc] => New Category 
                    [ModuleFor] => PRG_Program_Registration 
                ) 
            ) 
        ) 
        [IsException] => 
    ) 
) 

Вот что показывает вызов gettype:

TYPE = NULL

1 Ответ

3 голосов
/ 25 июня 2010

Вы используете разные имена объектов. В foreach у вас есть GetProgramSemesterCategoryList, но у объекта есть GetProgramSemesterCategoryListResult. Обратите внимание на «Результат» в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...