PHP DOMNodeList错误:在dev中工作但不在生产中

时间:2016-01-15 23:26:08

标签: php dom

我有下面的代码在我的本地开发服务器上工作正常,但不应该在生产上。我的本地开发环境使用PHP 5.6.12和我的生产服务器使用PHP 5.4.36,我在生产日志中收到以下错误,本地开发日志中没有错误。

PHP Fatal error:  Cannot use object of type DOMNodeList as array in /public_html/dev_host/Jobs.php on line 111

第110行 - 第113行:

$productRaw = $data->getElementsByTagName('a');
$productId = $this->parseProductId($productRaw[0]->attributes[0]->nodeValue);
$productAttributes = (array) json_decode($productRaw[0]->attributes[2]->nodeValue);
$productDetails = $this->parseProductDetails($productAttributes['name']);

1 个答案:

答案 0 :(得分:1)

在PHP 5.6.3中添加了将DOMNodeList视为数组的能力。

早于PHP 5.6.3,您必须使用$productRaw->item(0);而不是$productRaw[0]

这是bug #67949并列在5.6.3 changelog中,但似乎没有记录。