我从客户端收到了这个旧脚本,该客户端仍在使用PHP 4.4的旧服务器上运行。我们将它放在一个使用PHP 5.6的新服务器上,它不再工作如何工作。
该脚本将表单保存到XML文件,并再次将XML中的信息检索到表单中。问题是它不再检索它。我们收到此错误:
PHP致命错误:在null
上调用成员函数getAttribute()
以下是代码出错的部分。
if(!$xml_page->parseXML($strXMLToCContents)){
$show_errors .= "Parsing failed.<br>";
}
$nodeRoot =& $xml_page->documentElement;
$nodeToCDef =& $nodeRoot->firstChild;
$strToCButtonLabel = $nodeToCDef->getAttribute("name");
$countToCRows = $nodeToCDef->childCount;
for($n = 0; $n < $countToCRows; $n++){
$thisLinkNode =& $nodeToCDef->childNodes[$n];
$arrLinks[] = array($thisLinkNode->getAttribute("name"), $thisLinkNode->getAttribute("page"));
}
}
}
if(count($arrLinks) == 0){
for($n = 0; $n < $numFormFieldsToShow; $n++){
$arrLinks[] = array('', '');
}
}
任何需要改变的想法才能让它再次发挥作用。谢谢!
答案 0 :(得分:1)
自PHP 5起,new会自动返回引用,因此使用=&amp;在此上下文中不推荐使用,并在PHP 5.3及更高版本中生成E_DEPRECATED消息,在早期版本中生成E_STRICT消息。从PHP 7.0开始,它在语法上无效。 (从技术上讲,不同之处在于,在PHP 5中,对象变量很像资源,仅仅是指向实际对象数据的指针,因此这些对象引用不是&#34;引用&#34;在之前使用的相同意义上(别名)..