PHP DOMNodeList错误:在开发人员中有效,但在生产中无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP DOMNodeList错误:在开发人员中有效,但在生产中无效相关的知识,希望对你有一定的参考价值。

我有下面的代码可以在本地开发服务器上正常工作,但不能在生产环境上正常工作。 我的本地开发环境使用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']);
答案

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

在PHP 5.6.3之前,必须使用$productRaw->item(0); 而不是$productRaw[0]

这是错误#67949 ,已在5.6.3更新日志中列出,但否则似乎没有记录。

以上是关于PHP DOMNodeList错误:在开发人员中有效,但在生产中无效的主要内容,如果未能解决你的问题,请参考以下文章

DOM 无法将节点附加到 DOMNodeList (PHP 7.3) 中的元素

php 必须通过DOMnodeList向后循环才能删除节点

php 必须通过DOMnodeList向后循环才能删除节点

无法在 Chrome 开发人员工具/Firebug 中调试 javascript 问题

仅输出特定节点 PHP XML

编写SQL时PHP开发人员所犯的5个常见错误