Php DomeElement::getAttribute()在没有此类属性时返回空字符串的原因

Php DomeElement::getAttribute()在没有此类属性时返回空字符串的原因,php,dom,Php,Dom,在报告中说: 返回值 属性的值,如果找不到具有给定名称的属性,则为空字符串 有人知道返回空字符串而不是仅返回空字符串的原因吗?我认为返回什么并不重要。要检查结果的有效性,您需要调用doElement::hasAttribute() 这可能只是因为他们希望保持简单,让所有内容都返回字符串,而不是其他类型的神奇值(如null)。关键是DOM规范不是特定于平台的。它是为在多种编程语言中实现而编写的,因此它倾向于不假设存在诸如null之类的类型。W3C可以假定存在字符串类型,因此使用空字符串是安全的 因

在报告中说:

返回值

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


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

我认为返回什么并不重要。要检查结果的有效性,您需要调用
doElement::hasAttribute()


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

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

因此,报告的内容如下:

DOMString                 getAttribute(in DOMString name);

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

如果您想知道属性是否存在,请使用
DomeElement::hasAttribute()
@jmz Thx,我知道该函数,我只是好奇为什么开发人员让它在这种情况下返回空字符串,如果它通常与XML有关,或者,如果这只是他们做出的一个武断的决定……可能是一个有效的答案,尽管我想知道(只是好奇)开发人员在编写这样的函数时是怎么想的如果你想要一个非常好的答案,我会悬赏的。回答得好。规范中甚至有一个
getAttribute
方法的定义,它在“返回值”部分中说:
属性值作为字符串,或者如果该属性没有指定值或默认值,则为空字符串。
@AmadeusDrZaius我的理解(AFAIK没有文档记录)PHP只实现DOM级别1。这是愚蠢的,但你在这里。@lonesomeday是真的,我的评论并没有真正增加什么。我会在30…29。。。