Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [stdClass Object] w pętli foreach błąd.
zeroszumu
post 29.12.2011, 14:27:59
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.11.2011

Ostrzeżenie: (0%)
-----


Witam, mam taki problem.

Zmienna o nazwie $attachments zwraca wartości obiektu:

  1. stdClass Object
  2. (
  3. [ID] => 73
  4. [post_author] => 1
  5. [post_date] => 2011-12-29 09:47:46
  6. [post_date_gmt] => 2011-12-29 09:47:46
  7. [post_content] =>
  8. [post_title] => i2
  9. [post_excerpt] =>
  10. [post_status] => inherit
  11. [comment_status] => open
  12. [ping_status] => open
  13. [post_password] =>
  14. [post_name] => i2
  15. [to_ping] =>
  16. [pinged] =>
  17. [post_modified] => 2011-12-29 09:47:46
  18. [post_modified_gmt] => 2011-12-29 09:47:46
  19. [post_content_filtered] =>
  20. [post_parent] => 71
  21. [guid] => [url="http://XXX/projekty/XXX/wp-content/uploads/2011/12/i2.png"]http://XXX/projekty/XXX/wp-conte.../2011/12/i2.png[/url]
  22. [menu_order] => 0
  23. [post_type] => attachment
  24. [post_mime_type] => image/png
  25. [comment_count] => 0
  26. [filter] => raw
  27. )


chce ją dać do pętli:

  1. foreach($attachments as $big){
  2. print_r($big);
  3. }


i wywala mi błąd ;(

Kod
Fatal error: Cannot use object of type stdClass as array in /home/XXX/domains/XXX/public_html/projekty/XXX/wp-content/plugins/file-gallery/templates/default/gallery.php on line 3


proszę o pomoc/wskazówkę w czym tkwi błąd smile.gif

Ten post edytował zeroszumu 29.12.2011, 14:28:51
Go to the top of the page
+Quote Post
nospor
post 29.12.2011, 14:30:48
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No przecież masz napisane w komunikacie błędu:
obiektów klasy stdClass nie da się traktować jak tablicę....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zeroszumu
post 29.12.2011, 14:34:39
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.11.2011

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 29.12.2011, 14:30:48 ) *
No przecież masz napisane w komunikacie błędu:
obiektów klasy stdClass nie da się traktować jak tablicę....


no tak, używałem do przekonwertowania funkcję objectToArray ale nic z tego ;/

  1. function objectToArray( $object )
  2. {
  3. if( !is_object( $object ) && !is_array( $object ) )
  4. {
  5. return $object;
  6. }
  7. if( is_object( $object ) )
  8. {
  9. $object = get_object_vars( $object );
  10. }
  11. return array_map( 'objectToArray', $object );
  12. }


Masz pomysł, jak do pętli foreach rzucić dane z tego obiektu?
Go to the top of the page
+Quote Post
Shili
post 29.12.2011, 14:50:04
Post #4





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


http://tuxradar.com/practicalphp/6/7/6

Pierwszy przykład i zadanie typu znajdź różnicę.
Go to the top of the page
+Quote Post
zeroszumu
post 29.12.2011, 14:54:03
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.11.2011

Ostrzeżenie: (0%)
-----


niestety to nie to ;/
Go to the top of the page
+Quote Post
nospor
post 29.12.2011, 14:56:02
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Pierwszy przykład i zadanie typu znajdź różnicę.
I jakaż to różnica?

Cytat
no tak, używałem do przekonwertowania funkcję objectToArray ale nic z tego ;/
Jakiś błąd ci pluje przy tym drugim kodzie?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zeroszumu
post 29.12.2011, 15:01:33
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.11.2011

Ostrzeżenie: (0%)
-----


  1. $val = objectToArray($attachments);
  2. print_r($val);


już naprawione, zapomniałem że funkcję objectToArray() dałem w pętle i wyskakiwał błąd duplikacji. Wszystko działa, dzięki nospor za pomoc smile.gif

pozdrawiam, szczęśliwego nowego roku smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 00:41