$write_result->errors 在没有错误时引发"Undefined Property"



使用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 .

相关内容

  • 没有找到相关文章

最新更新