$ write_result->错误抛出"未定义属性"什么时候没有错误

时间:2013-03-12 13:56:52

标签: php soap-client bronto

使用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";
 }

每当出现ARE错误时,它们都会被第一个if语句捕获并打印出来。但是当出现ARE NOT错误时,控制台会打印出“Notice:Undefined property:stdClass :: $ errors”消息。这是正确的吗?有没有办法关掉通知?它不会导致任何问题,但我可以看到它会如何混淆非技术性读取输出日志。

3 个答案:

答案 0 :(得分:2)

检查属性是否存在而不是直接访问它:

if (isset($write_result->errors))

或检查它是否存在一次不为空(只是为了确保API更改并提供实际的空数组或空字符串,如果没有发生错误):

if (!empty($write_result->errors))

答案 1 :(得分:1)

首先检查属性是否存在:

if (property_exists($write_result, 'errors') && $write_result->errors)
{
  // ...
}

请参阅:property_exists

答案 2 :(得分:1)

您可以先检查property exists

if (property_exists($write_result, 'errors'))