2013-06-26 35 views
0

我試圖將下面的代碼鏈接到1行。純粹是爲了試驗,看看它是否可以完成。PHP 5.4.x中的方法鏈接和新的關鍵字返回錯誤

這是原來的代碼,它的工作原理:

$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 

如果這爲什麼它不能按預期工作?

+0

這是允許的,如果類支持IE瀏覽器(IE:方法返回'$ this') –

+0

你可以試試:'$的XPath =新DomXPath(的DomDocument: :loadHtml($ html));' –

+0

您無法靜態調用loadHtml。 – SparkDesigns

回答

0

該錯誤實際上表示它只是perfeclly:loadHtml返回一個Bool(true/false)。檢查手冊中的返回值。

錯誤: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.