0

使用来自 Bronto 的预先编写的代码,它构建了一个肥皂客户端,在其上调用一个函数,然后解析结果。解析代码如下所示:

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 语句捕获并打印出来。但是当没有错误时,控制台会打印出“注意:未定义的属性:stdClass::$errors”消息。这是正确的吗?有没有办法关闭通知?它不会引起任何问题,但我可以看到它会如何混淆阅读输出日志的非技术人员。

4

3 回答 3

2

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

if (isset($write_result->errors))

或者检查它是否存在并且一次不为空(只是为了确保 API 发生变化并在没有发生错误的情况下提供一个实际的空数组或空字符串):

if (!empty($write_result->errors))
于 2013-03-12T13:59:48.407 回答
1

首先检查该属性是否存在:

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

见:property_exists

于 2013-03-12T13:59:28.970 回答
1

您可以先检查该属性是否存在

if (property_exists($write_result, 'errors'))
于 2013-03-12T13:59:31.377 回答