2011-06-03 45 views
1

php docs返回一个空字符串,它说:原因一个DOMElement ::的getAttribute()时,有没有这样的属性,

返回值

属性的值,或空字符串,如果没有找到给定名称的属性。

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

+0

如果您想知道是否存在属性,请使用'DOMElement :: hasAttribute()'。 – jmz 2011-06-03 20:40:08

+0

@jmz Thx,我知道这个函数,我只是好奇开发者为什么会在这种情况下返回一个空字符串,如果它通常与XML有关,或者它只是一个任意的决定,他们为根本原因分析制作了... – cambraca 2011-06-03 20:43:01

回答

2

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

所以specification全文如下:

DOMString     getAttribute(in DOMString name); 

所以字符串是一个跨平台的基础上,预期的类型。 PHP的DOMDocument符合这一点。

+0

很好的答案。规范中甚至有一个getAttribute方法的定义,在“返回值”一节中说:“Attr值为字符串,如果该属性没有指定或默认值,则为空字符串。” – cambraca 2011-06-03 20:56:02

+0

@AmadeusDrZaius我的理解(没有文档记录AFAIK)是PHP只实现DOM级别1.这是头脑简单的,但你是。 – lonesomeday 2015-01-09 19:30:15

+0

@lonesomeday没错,我的评论并没有真正添加任何内容。我将在30 ... 29中删除... – 2015-01-11 01:00:44

1

我不认为它真的很重要它返回。要检查结果的有效性,无论如何您都需要拨打DOMElement::hasAttribute()

这可能只是因为他们想保持简单,并且一切都返回字符串而不是其他类型的魔法值(如null)。

+0

+1。 – 2011-06-03 20:41:23

+0

可能是一个有效的答案,虽然我想知道(只是好奇)当他们写这样的功能时,开发人员在想什么 – cambraca 2011-06-03 20:43:56

+0

如果你想要一个非常好的答案,我会给它一个赏金。 – Halcyon 2011-06-03 20:45:26

相关问题