在php docs返回一个空字符串,它说:原因一个DOMElement ::的getAttribute()时,有没有这样的属性,
返回值
属性的值,或空字符串,如果没有找到给定名称的属性。
有谁知道返回空字符串的原因而不是仅仅是NULL
?
在php docs返回一个空字符串,它说:原因一个DOMElement ::的getAttribute()时,有没有这样的属性,
返回值
属性的值,或空字符串,如果没有找到给定名称的属性。
有谁知道返回空字符串的原因而不是仅仅是NULL
?
重点在于DOM规范不是平台特定的。它被编写为以各种编程语言实现,所以它倾向于不假定类型的存在,例如null
。 W3C可以假设存在一个字符串类型,因此使用空字符串是安全的。
所以specification全文如下:
DOMString getAttribute(in DOMString name);
所以字符串是一个跨平台的基础上,预期的类型。 PHP的DOMDocument符合这一点。
很好的答案。规范中甚至有一个getAttribute方法的定义,在“返回值”一节中说:“Attr值为字符串,如果该属性没有指定或默认值,则为空字符串。” – cambraca 2011-06-03 20:56:02
@AmadeusDrZaius我的理解(没有文档记录AFAIK)是PHP只实现DOM级别1.这是头脑简单的,但你是。 – lonesomeday 2015-01-09 19:30:15
@lonesomeday没错,我的评论并没有真正添加任何内容。我将在30 ... 29中删除... – 2015-01-11 01:00:44
如果您想知道是否存在属性,请使用'DOMElement :: hasAttribute()'。 – jmz 2011-06-03 20:40:08
@jmz Thx,我知道这个函数,我只是好奇开发者为什么会在这种情况下返回一个空字符串,如果它通常与XML有关,或者它只是一个任意的决定,他们为根本原因分析制作了... – cambraca 2011-06-03 20:43:01