我从soap调用返回了以下对象数组:
$result = $this->soapClient->__soapCall($method, $arguments);
var_dump($result);
object(stdClass)#4 (1) {
["Jobs_GetResult"]=> object(stdClass)#5 (3) {
["Jobs"]=> array(4) {
[0]=> object(stdClass)#7 (19) {
["JobID"]=> int(55082846)
["JobName"]=> string(18) "Fix xyz"
}
}
["Errors"]=> object(stdClass)#10 (2) {
["Result"]=> int(0)
["Message"]=> string(0) ""
}
["RecordCount"]=> int(1)
}
}
我想检查是否有任何错误-当已知父数组键时,这很容易,例如:
if($result->Jobs_GetResult->Errors->Result > 0){
// display message
}
问题是我不知道大多数调用会使用顶级数组键的名称,因为我使用的是通用方法-在上面的示例中为Jobs_GetResult
,因此上面会工作。
在未知顶级数组键的情况下,如何检查是否返回任何错误?
通常,父数组键的名称通常是方法调用的名称,后接Result
。所以我正在考虑按照以下方式做些事情:
if($result->$method . 'Result'->Errors->Result > 0){
// display message
}
但是显然以上语法是错误的。任何人都知道如何输出$method
的值并将其链接到$result
并附加Result
还有其他方法可以在不知道父数组键是什么的情况下检查Errors数组结果是否大于1吗?
答案 0 :(得分:3)
尝试一下:
$result = $this->soapClient->__soapCall($method, $arguments);
$firstKey = key($result);
if (!empty($firstKey) && !empty($result->{$firstKey}->Errors->Result)) {
// display message
}