我在以下代码行中得到了这个神秘的nbotice:
$this->$aStyles = $aStyles;
这行代码存在于此函数中:
private function cleanStyles()
{
if ((isset($this->sValue))&&($this->sValue))
{
$this->aStyles = array();
return true;
}
$aStyles = array();
foreach ($this->aStyles as $oStyle)
if ($oStyle->cleanStyles())
$aStyles[] = $oStyle;
$this->$aStyles = $aStyles;
return (count($this->$aStyles)>0);
}
有关为什么会出现此通知的任何想法?
这里有一些关于我想要做的事情的背景,以防它有所帮助: 我有一个表示excel报告的对象层次结构。层次结构与phpExcel对话以实际绘制报告。准备绘制时层次结构所采取的步骤之一是清理样式数组。
样式对象可以包含样式对象的数组,也可以包含值。
cleanStyles应该以递归方式清理样式,以便通过确保所有存在的样式都具有值或有效样式数组来将它们转换为有效的phpExcel样式数组。
答案 0 :(得分:1)
从您的媒体解除引用中删除$
符号:
$this->aStyles = $aStyles;
------^
您的代码无效,因为php在尝试访问对象值之前尝试评估$aStyles
。在这种情况下,aStyles是一个数组,因此您会收到通知,因为只有aStyles
是一个字符串时该语法才有效