2012-04-18 44 views
0

我得到以下行的代码,这个神秘的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样式数组。

回答

1

从你的财产取消引用删除$牌子:因为PHP是试图尝试访问该对象值之前评估$aStyles

$this->aStyles = $aStyles; 
------^ 

您的代码没有工作。在这种情况下,aStyles是一个数组,因此您会收到通知,因为只有在aStyles是字符串