当没有这样的属性时,DOMElement :: getAttribute()返回空字符串的原因

时间:2011-06-03 20:37:09

标签: php dom

php docs中说:

  

返回值

     

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

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

2 个答案:

答案 0 :(得分:2)

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

所以specification的内容如下:

DOMString                 getAttribute(in DOMString name);

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

答案 1 :(得分:1)

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

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