0

我试图将下面的代码链接到 1 行。纯粹是为了实验,看看能不能做到。

这是原始代码,有效:

$dom = new DomDocument();
$dom->loadHtml($html);
$xpath = new DomXPath($dom);

但是,当链接时,这会返回一个错误:

$xpath = new DomXPath((new DomDocument())->loadHtml($html));

错误是:

Catchable fatal error: Argument 1 passed to DOMXPath::__construct() must be an instance of DOMDocument, boolean given

如果 PHP 5.4.x 允许这种链接,为什么它不能按预期工作?

4

1 回答 1

0

该错误实际上只是完美地说明了它:loadHtml 返回了一个布尔值(真/假)。检查手册以获取返回值。

错误:Catchable fatal error: Argument 1 passed to DOMXPath::__construct() must be an instance of DOMDocument, boolean given

代码:

$xpath = new DomXPath((new DomDocument())->loadHtml($html));
//                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//                     Argument 1, that returned a bool.
于 2013-06-26T20:29:24.857 回答