无法在Symfony中使用DOMDocument

问题描述 投票:0回答:1

我一直无法在symfony中使用DOMDocument。在挖掘之后,我发现问题可能是我没有php xml扩展名,但我认为这很荒谬,因为尽管无法使用DOMDocument,我可以使用Symfony的DOMCrawler,它显然使用类似于DOMDocument的东西。好吧,在查看了Crawler的源代码之后,我发现他们使用了类似的东西

$dom = new \DOMDocument('1.0', $charset);    

而不是通常的

$dom = new DOMDocument('1.0', $charset);

有人知道这两者之间的区别,为什么一个有效,另一个不在Symfony?

php symfony domdocument
1个回答
2
投票

因为在symfony中我们在每个类中使用命名空间。并且因为您已在类中声明了命名空间,所以您需要通知PHP有关您要使用的每个类的命名空间。如果您没有声明正在使用的类的名称空间,PHP会认为此类与当前类位于同一名称空间中。

所以这段代码中的反斜杠"\"new \DOMDocument()是informe PHP,你想使用“全局”命名空间中的DOMDocument类。如果要使用Datetime对象,则还需要在实例化Datetime对象时使用反斜杠。

另一个解决方案是使用关键字Use声明。举个例子:

use \DOMDocument;

然后在你的代码中你将实例化没有反斜杠:qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.