2013-02-11 5 views

Odpowiedz

66

Jak się okazało, autor pominął bardzo prostą poprawkę i ogólną dobrą praktykę, że zawsze powinieneś zainicjować obiekt przed próbą ustawienia właściwości. Bardzo prostym rozwiązaniem jest po prostu dodanie wywołania new StdClass; tuż przed błędem ze zmienną, do której próbuje uzyskać dostęp.

$items[$i] = new StdClass; 
$items[$i]->title = $crs_post_title; 

Pierwsza linia usunie ostrzeżenie z pokazania.

Naprawiłoby to również problem w /components/com_community/models/activities.php on line 387 z następującą poprawką.

$commentsResult[$comment->type . '-' . $comment->contentid] = new StdClass; 
$commentsResult[$comment->type . '-' . $comment->contentid]->_comment_count = 0; 
+3

Jeśli nie znasz całego kodu, lepiej dodać warunkowe do linii tworzenia, ponieważ ostrzeżenie może być poszlakowe. Na przykład: if (! Is_object ($ items [$ i])) {$ items [$ i] = new stdClass;} $ items [$ i] -> title = $ crs_post_title; –

+0

Masz na myśli instancję. Nie zainicjuj. – Matth3w

+1

@ Mark Tomlin Miałem podobny problem, który jest teraz rozwiązany –

Powiązane problemy