Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Klasy a tablice
dudzisz
post 28.02.2009, 02:14:01
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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreator
post 28.02.2009, 08:25:39
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 tongue.gif Jak już to powiedział Pan niżej biggrin.gif

Ten post edytował kreator 1.03.2009, 10:36:16
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 07:28