Не могу понять, как отобразить простую строку из моего объекта

Я новичок в объектах и ​​классах, но я пытаюсь создать класс для одного из моих простых запросов на мыло, чтобы я мог вызывать статус задания только по номеру задания. Я не могу сказать, как использовать результат статуса, хотя могу подтвердить, что он работает.

Вот что у меня в классе

public function validatejob() {
        $client = new SoapClient('http://server/Service.asmx?wsdl');
        $user = array("Username" => "", "Password" => "");
        $jobnumber = $this->jobnumber;
        $response1 = $client->GetSummaryJobStatus(
          array(
            "Credentials" => $user,
            "JobNumber" => $jobnumber,
            ));
        //$response1 -> GetSummaryJobStatusResult;
        echo $response1 -> GetSummaryJobStatusResult;
}

Вот что на моей странице:

$soap = new Soap; //create a new instance of the Users class
$soap->storeFormValues( $_POST ); 
$soap->validatejob();
print_r($soap->$response1->GetSummaryJobStatusResult);

Это напечатано на странице:

HISTORY Fatal error: Cannot access empty property in /home/shawmutw/public_html/client/support.php on line 10

Вы можете видеть, что это терпит неудачу, но ИСТОРИЯ - это результат, который я ищу. Как правильно отобразить часть истории или сохранить ее в переменной для использования?

2 ответа

Решение

Вы должны определить свойство класса и назначить ответ на него следующим образом:

class A {
    public $response1;

    public function validateJob() {
        ...
        $this->response1 = $client->GetSummaryJobStatus(
        ...
    }   
}

Затем вы можете получить доступ к свойству класса через ваш экземпляр следующим образом:

print_r($soap->response1->GetSummaryJobStatusResult);

Ваш метод validateJob ничего не возвращает и не сохраняет результат ни в каком свойстве, поэтому нет доступа к нему вне этого метода.

return $response1; // will help inside the method

$job = $soap->validateJob(); // save result

var_dump($job); // see what you get.
Другие вопросы по тегам