2010-02-05 6 views
0

저는 실제로 SOAP로 작업하고 있습니다. 귀찮아서 응답 이름은 내가 말하는 방법에 따라 다릅니다. 예를 들어, 하나 개의 방법이없이 값을 참조하는 방법이 있나요정확한 이름을 모른 채로 객체 속성을 참조하는 방법은 무엇입니까?

$ 응답 -> GetOrdersStateResult

와 ..와 다른 응답 동안

$ 응답 -> SendOrderResult

을 응답 할 것입니다 이름을 아는거야? $ 응답과 같은, 즉 뭔가 -> * 결과

+0

매우 이상합니다. 나는 이것을 본 적이 없습니다. – Sarfraz

답변

0

아니, 이것은 당신이 필요한 방법 afterwords 코드를 분석하여 전화 호출하는 어떤 방법을 알아낼 수있을 것입니다 수 없습니다 :

if (this condition) 
{ 
    $response->SendOrderResult(); 
} 
else 
{ 
    $response->GetOrdersStateResult(); 
} 

또 다른를 가능성은 get_class_methods 기능을 사용하는 것입니다.

$class_methods = get_class_methods(new myclass()); 

foreach ($class_methods as $method_name) 
{ 
    echo "$method_name\n"; 
} 
0

당신이 ($response 유형 stdClass입니다 가정) 그것에 대해 약간의 함수를 작성할 수 있습니다

function extractResult($response) { 
    foreach ($response as $attribute_name => $attribute_value) { 
     if (strtolower(substr($attribute_name, -6)) == 'result') 
      return $attribute_value; 
    } 
} 

그런 다음

$result = extractResult($response); 

주를 통해 그것을 호출 할 수있을 수 있습니다 함수가 작동하지 않는 몇 가지 경우, 즉 결과 속성 이름이 Result으로 끝나지 않는 경우입니다.

관련 문제