PHP Fatal error: Cannot pass parameter N by reference in错误原因及解决办法
PHP Fatal error: Cannot pass parameter N by reference in XXX,其中N为阿拉伯数字。
错误说明:不能按引用传递第N个参数
错误原因:调用包含引用参数的函数时,对应的引用参数不是变量。
示例代码:
<?php
function math_add($p1,&$p2){
return $p1+$p2;
}
$p = 2;
echo math_add(1,$p);//正确:输出3
echo math_add(1,2);//错误:PHP Fatal error: Cannot pass parameter 2 by reference
?>
foreach ($this->metas as $key => $val ) {
${"meta" . $i} = $this->xml->createElement($key);
${"meta" . $i}->appendChild($this->xml->createTextNode($val));
$articleinfo->appendChild(${"meta" . $i}); //应输入变量而不是"meta" . $i
$i++;
}
public function appendChild(&$child)
{
$child->parentNode = &$this;
$this->childNodes[] = $child;
if ($child->nodeType == XML_TYPE_NODE) {
$child->previousSibling = &$this->lastChild;
}
if ($this->nodeType == XML_TYPE_NODE) {
if (!is_null($this->lastChild)) {
$this->lastChild->nextSibling = $child;
}
$this->firstChild = &$this->childNodes[0];
$this->lastChild = $child;
}
}