![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 28.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Nie wiem czy w dobrym miejscu pisze, ale pewnie tak bo to przedszkole, a ja jestem początkujący. Mam następujący problem. Chciałem stworzyć klasę koszyk następująco: class Koszyk { public $id; public $nazwa; public $cena; public $ilosc; public function wypisz() { $i=1; while(isset($this[$i])) { if ($this[$i]->ilosc >0) { print "".$this[$i]->id." ".$this[$i]->nazwa." ".$this[$i]->cena." ".$this[$i]->ilosc."";} $i++; } } public function dodaj($id,$nazwa,$cena) { $z=0; $i=1; while(isset($this[$i])) { if ($this[$i]->id == $id) {$z=$id;} $i++; } if ($z==0) { $j=1; while(isset($this[$j])) { $j++;} $this[$j] = new Koszyk; $this[$j]->ip = $ip; $this[$j]->nazwa = $nazwa; $this[$j]->cena = $cena; $this[$j]->ilosc = 1; } else {$this[$j]->ilosc++;} } } gdy wpisuję $Kosz->wypisz() lub $Kosz->dodaj(x,y,z) wyrzuca "Cannot use object of type Kosz as array in...". Dlaczego tego nie może potraktować jako tablicy? Można to jakoś poprawić, czy cały pomysł jest do niczego? Będę wdzięczny za pomoc, bo już nawet nie wiem gdzie szukać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 3 Dołączył: 19.10.2007 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, jak dajesz kod, to umieszczaj go jako kod
Rozumiem, że każda tablica zawiera inny element (np. id, nazwe itd). Ja bym trochę inaczej to napisał. Ale błędem u Ciebie jest to, że piszesz $this[$i]->id co jest całkowicie bez sensu, bo Ty chcesz się zwrócić do elementu $i w tablicy id, a nie w $this, które jest wskaźnikiem, że dana zmienna jest w tej klasie. Czyli powinno być Kod $this->id[$i] I tak we wszystkich. @EDIT Mój kod był nieciekawy ![]() ![]() Ten post edytował kreator 1.03.2009, 10:36:16 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:28 |