DOMElement的原因::getAttribute()在没有空字符串的情况下返回空字符串


Reason for DOMElement::getAttribute() returning an empty string when there is no such attribute

在php文档中,它说:

返回值

属性的值,如果找不到具有给定名称的属性,则为空字符串。

有人知道返回空字符串而不是仅返回NULL的原因吗?

重点是DOM规范不是特定于平台的。它是为在各种编程语言中实现而编写的,因此它倾向于不假设存在null等类型。W3C可以假设存在字符串类型,因此使用空字符串是安全的。

因此,规范如下:

DOMString                 getAttribute(in DOMString name);

因此,字符串是跨平台的预期类型。PHP的DOMDocument符合这一点。

我认为它返回什么并不重要。要检查结果的有效性,您无论如何都需要调用DOMElement::hasAttribute()

这可能只是因为他们想保持简单,让所有东西都返回字符串,而不是不同类型的神奇值(如null)。