0

全部,

我正在使用 PHPLint 来评估我正在编写的 PHP 脚本,它返回以下错误:

“错误:属性‘SimpleXMLElement::$error’不存在或不可见”。

引用的代码如下所示:

$this->_xmlResponse = new SimpleXMLElement($resultString);

if (($this->_xmlResponse !== NULL) && ($this->_xmlResponse->error))

_xmlResponse 是一个类变量,声明如下:

private /*. SimpleXMLElement .*/ $_xmlResponse = NULL;

SimpleXMLElement 类的工作方式是使用 -> 运算符按名称引用 XML 元素。所以我指的是 SimpleXMLElement 对象中的“错误”元素。

我也收到这样的错误:

错误:`->' 运算符应用于混合类型的值

当访问这样的元素时:

print ' by ' . htmlentities($status->user->screen_name) . '</h6>';

代码工作正常,但 PHPLint 仍然给出错误。我查看了 PHPLint 参考手册,但我无法确定 PHPLint 是否无法解析 SimpleXMLElement,或者这是否真的是一个潜在问题。谁能解释这个 PHPLint 错误?也许我需要做一些类型转换?

4

1 回答 1

0

你提出了两个不同的问题。首先,SimpleXMLElement(从 PHP 5.3.6 开始)没有错误属性。请参阅此处的文档。如果您阅读构造函数文档,您会发现检测错误的正确方法是捕获构造函数抛出的异常。第二个错误最有可能发生在 $status(或 $status->user)上有一个 @mixed PHPDocumentor 注释,PHPLint 使用它。将注释更改为 @object 应该可以解决您的问题。

于 2011-06-16T17:27:55.950 回答