使用Bronto预先编写的代码,它构建一个soap客户机,在其上调用一个函数,然后解析结果。解析代码如下所示:
if ($write_result->errors) {
print "There was a problem adding or updating the contact:n";
print_r($write_result->results);
exit;
} elseif ($write_result->results[0]->isNew == true) {
print "The contact has been added. Id: " . $write_result->results[0]->id . "n";
} else {
print "The contact's information has been updated. Id: " . $write_result->results[0]->id . "n";
}
无论何时出现错误,它们都会被第一个if语句捕获并打印出来。但是当没有错误时,控制台会打印出"Notice: Undefined property: stdClass::$errors"消息。这样对吗?有办法关掉通知吗?它不会引起任何问题,但是我可以看到它会使阅读输出日志的非技术人员感到困惑。
检查该属性是否存在,而不是直接访问:
if (isset($write_result->errors))
或者检查它是否存在和不为空(只是为了确保万一API更改并在没有发生错误的情况下提供实际的空数组或空字符串):
if (!empty($write_result->errors))
您可以先检查该属性是否存在:
if (property_exists($write_result, 'errors'))
先检查属性是否存在:
if (property_exists($write_result, 'errors') && $write_result->errors)
{
// ...
}
参见:property_exists
.