2012-04-18 75 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是字符串