Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php, tablice dynamiczne w klasach - ostrzeżenie
Forum PHP.pl > Forum > Przedszkole
hespis
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
kwiateusz
dodaj na poczatek
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>
i dziala jak nalezy bez wyrzucania bledow ..
Kuziu
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. ?>
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.