Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> php, tablice dynamiczne w klasach - ostrzeżenie, php, tablice w klasach, problem
hespis
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.08.2005
Skąd: Warszawa

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


Witam!

Mam oto taki sobie kod:


  1.  
  2. <?php
  3.  
  4. // Początek definicji klasy Koszyk - definiującej koszyk sklepowy
  5. class Koszyk
  6. {
  7.  
  8. // Definicja zmiennej - tablicy asocjacyjnej zawierającej numery artykułów i ich ilość
  9.  
  10. var $artykuly;
  11.  
  12. // Funkcja dodająca podaną ilość artykułów do koszyka
  13.  
  14. function dodaj($numer, $ilosc){
  15.     //array($numer->$this->artykuly);
  16.     $this->artykuly[$numer] += $ilosc;
  17.  
  18. }
  19.  
  20. // Funkcja usuwająca podaną ilość artykułów z koszyka
  21.  
  22.    function usun($numer, $ilosc){
  23.  
  24.       if($this->artykuly["$numer"]>$ilosc)
  25.  
  26.          $this->artykuly["$numer"]-=$ilosc;
  27.  
  28.       else
  29.  
  30.          $this->artykuly["$numer"]=0;
  31.  
  32.    }
  33.  
  34. // Funkcja wyświetlająca zawartość koszyka
  35.  
  36.    function wyswietl(){
  37.  
  38.       while(list($k, $v) = each($this->artykuly))
  39.          if($v>0)
  40.             echo "Artykul nr $k - $v sztuk<br>";
  41.  
  42.    }
  43.  
  44. }
  45.  
  46. // Przykład wykorzystania
  47.  
  48. $koszyk = new Koszyk;
  49. $koszyk->dodaj('20', 2);
  50. $koszyk->dodaj('12', 4);
  51. $koszyk->dodaj('20', 5);
  52. $koszyk->usun('12', 3);
  53. $koszyk->wyswietl();
  54.  
  55.  
  56. ?>


Wynik działania:

Notice: Undefined index: 20 in C:\Server\Apache2\htdocs\index.php on line 25

Notice: Undefined index: 12 in C:\Server\Apache2\htdocs\index.php on line 25


Artykul nr 20 - 7 sztuk
Artykul nr 12 - 1 sztuk

Jak zainicjować dynamiczną tablice, tak aby nie otrzymywać komunikatów - ostrzeżeń?

Pozdrawiam


Ten post edytował hespis 6.05.2006, 14:49:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kwiateusz
post
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




dodaj na poczatek
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>
i dziala jak nalezy bez wyrzucania bledow ..
Go to the top of the page
+Quote Post
Kuziu
post
Post #3





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Cytat(kwiateusz @ 2006-05-06 15:58:14)
dodaj na poczatek
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>
i dziala jak nalezy bez wyrzucania bledow ..

To raczej nie rozwiązuje problemu tylko go maskuje

  1. <?php
  2. if(isset($this->artykuly["$numer"]) && $this->artykuly["$numer"]>$ilosc)
  3. ?>


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
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 Aktualny czas: 22.08.2025 - 05:09