我正在使用php中的soap客户端从Soap服务获取信息
我终于设法打通了电话,这真是个好消息!
<?
$url = "MYURL";
$client = new SoapClient($url, array("trace" => 1, "exception" => 0));
$SOAPCall = "Method";
$SoapCallParameters = new stdClass();
$SoapCallParameters->webUserKey = 'Value1';
$SoapCallParameters->urn = 'Value2';
$obj = $client->Method($SoapCallParameters);
var_dump ($obj);
echo $obj->{'LastName'};
?>
该方法通过转储返回
object(stdClass)#3 (1) { [["LastName"]=> string(10) "Test"} ]}
但是echo语句不显示LastName属性
我在做什么错?我尝试了不同的组合,例如将属性放入字符串变量中
我尝试了其他方法,但仍然无法正常工作
此方法也不起作用
$obj = $client->Method($SoapCallParameters);
$vars = get_object_vars($obj);
$arr = (array)$vars;
var_dump($arr);
$lastName = (string) $arr[0]["LastName"];
echo $lastName;
使用上述逻辑进行var_dump给出
我从var_dump中看到响应中有值
array(2) {
["CheckRegistrationStatus_UrnResult"]=>
string(10) "MatchFound"
["result"]=>
object(stdClass)#4 (6) {
["Age"]=>
string(2) "21"
["FirstClaimClub"]=>
string(47) "VALUE"
["FirstName"]=>
string(6) "FIRSTNAME"
["LastName"]=>
string(10) "LASTNAME"
["Registered"]=>
bool(true)
["URN"]=>
string(7) "VALUE"
}
}
这现在意味着我尝试引用姓氏的方式是错误的
正确的语法是什么?
保罗
答案 0 :(得分:1)
使用get_object_vars()
$obj = $client->Method($SoapCallParameters);
$obj = get_object_vars($obj);
var_dump($obj['result']->LastName);
这会给你这个主意。
答案 1 :(得分:0)
示例StdClass对象:
$obj = new stdClass();
$obj->foo = "bar";
其他示例
echo $obj->foo; // -> "bar"
通过变量的值:
$my_foo = 'foo';
echo $obj->{$my_foo};