Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Dynamiczna tablica obiektów
Forum PHP.pl > Forum > PHP > Object-oriented programming
tomsol
Witajcie,

w jaki sposób odczytać zdefiniowaną tablicę obiektów:

W modelu mam:
  1. funkcja jakaśtam()
  2. {
  3. $data = array();
  4. for($a=0; $a<=6; $a++)
  5. {
  6. $data['unixtime'][] = mktime($a, 0, 0, 1, 1, 2012);
  7. }
  8. return (object)$data;
  9. }


W kontrolerze:
  1. $this->view->termArray = jakaśtam();


W widoku:
  1. foreach($this->termArray as $a)
  2. {
  3. echo $a->unixtime;
  4. }


zwraca mi błąd:
Cytat
Notice: Trying to get property of non-object in /Applications/MAMP/htdocs/SYSTEM_OSK/application/views/scripts/test/index.phtml on line 80
404
Czy to nie będzie czasami tak:
  1. foreach($this->termArray['unixtime'] as $a)
  2. {
  3. echo $a;
  4. }

?
melkorm
1. Po co rzutujesz to na obiekt ?
2. Jak już to:
  1. foreach($this->termArray->unixtime as $a)
  2. {
  3. echo $a;
  4. }


Zresztą var_dump i zobacz sobie co tam masz ... .
tomsol
Cytat(melkorm @ 15.01.2012, 15:58:26 ) *
1. Po co rzutujesz to na obiekt ?
2. Jak już to:
  1. foreach($this->termArray->unixtime as $a)
  2. {
  3. echo $a;
  4. }


Zresztą var_dump i zobacz sobie co tam masz ... .


chciałbym w prosty sposób wyciągać obiekty w widoku przy generowaniu np zawartości tabelki html

a co w przypadku gdy bede miał:
  1. funkcja jakaśtam()
  2. {
  3. $data = array();
  4. for($a=0; $a<=6; $a++)
  5. {
  6. $data['unixtime'][] = mktime($a, 0, 0, 1, 1, 2012);
  7. $data['a'][] = $a;
  8. $data['increment_a'][] = $a+1;
  9. }
  10. return (object)$data;
  11. }


Chciałbym wszystkie elementy tablicy wyciągnąć w taki sposób:
  1. <?php foreach($this->termArray as $t):?>
  2. <p>Unixtime: <?php echo $t['unixtime'];?> A: <?php echo $t['a'];?> Increment A: <?php echo $t['increment_a'];?></p>
  3. <?php endforeach;?>



W jaki sposób to ugryźć ?

melkorm
Podstawy operacji na tablicach / obiektach.

Jak już chcesz w takeij formie to mieć to lepiej zrobić:
  1. funkcja jakaśtam()
  2. {
  3. $data = array();
  4. for($a=0; $a<=6; $a++)
  5. {
  6. $data[] = array(
  7. 'unixtime' => mktime($a, 0, 0, 1, 1, 2012),
  8. 'a' =>$a,
  9. 'increment_a' => $a+1
  10. );
  11. }
  12. return $data;
  13. }


I wtedy w widoku tak jak masz aktualnie.
tomsol
Cytat(melkorm @ 15.01.2012, 16:43:04 ) *
Podstawy operacji na tablicach / obiektach.



Dziękuje za rozjaśnienie sytuacji i przypomnienie operacji na tablicach.
Faktycznie przedszkole się kłania wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.