2012-04-18 3 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

Удалите $ знак из вашей собственности разыменования:

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

Вашего код не работает, потому что PHP пытается оценить $aStyles, прежде чем пытаться получить доступ к значению объекта. В этом случае aStyles - это массив, поэтому вы получаете уведомление, потому что этот синтаксис действителен только в том случае, если aStyles является строкой

Смежные вопросы