我有下面的代码在我的本地开发服务器上工作正常,但不应该在生产上。我的本地开发环境使用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']);
答案 0 :(得分:1)
在PHP 5.6.3中添加了将DOMNodeList
视为数组的能力。
早于PHP 5.6.3,您必须使用$productRaw->item(0);
而不是$productRaw[0]
。
这是bug #67949并列在5.6.3 changelog中,但似乎没有记录。