Php DOMNodeList返回DOMNode还是DOMElement?

Php DOMNodeList返回DOMNode还是DOMElement?,php,dom,domxpath,Php,Dom,Domxpath,我错过了一些东西 我有这个命令: $xpath->query('//input')->项(0) php.net文档说DOMNodeList:item应该返回一个DOMNode,但是如果我var_dump上面的结果,它会说它返回一个domeElement 是php.net错了还是我错了 PS:我非常喜欢它返回一个domeElement,虽然看起来更符合逻辑 正如Esailija在其评论中所说的DomeElement扩展了DOMNode,因此它确实返回了一个DOMNode,或者说是一个共享该接口的对

我错过了一些东西

我有这个命令:

$xpath->query('//input')->项(0)

php.net文档说DOMNodeList:item应该返回一个DOMNode,但是如果我var_dump上面的结果,它会说它返回一个domeElement

是php.net错了还是我错了


PS:我非常喜欢它返回一个domeElement,虽然看起来更符合逻辑

正如Esailija在其评论中所说的
DomeElement
扩展了
DOMNode
,因此它确实返回了一个
DOMNode
,或者说是一个共享该接口的对象。也就是说,您不能依赖它是
DOMElement
,因此如果您使用
DOMElement
特定功能,您需要测试它是
DOMElement
,而不是其他形式的
DOMNode

它确实返回一个
DOMNode
。。。如果您有一个
domeElement
$dom
,那么
$domInstanceof DOMNode
等于
true
您的理解是错误的。如果说某个东西返回了
车辆
,而返回了
汽车
,那么说汽车不是车辆是错误的。当然,考虑到
Car
extensed
Vehicle
@Bakaburg:我不得不反对,并不是要贬低你,但你和任何提出这一点的人都是错的。它返回
DOMNode
的接口,即API的“契约”。任何属于
DOMNode
的实例都仍然是
DOMNode
,即使它是一个派生类。这对于几乎所有的API文档都是典型的。@Bakaburg imho PHP文档很清楚
DOMNodeList::item()
返回类
DOMNode
的对象。这是有保证的。无法保证将返回
DOMNode
的哪个子类。它可以是
DOMElement
,也可以是
domcoment
DOMText
,并且列表可以包含任何顺序的任何组合。如果行为取决于返回的确切子类,则需要首先检查。