Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze skryptem.
Forum PHP.pl > Forum > Przedszkole
tonapewno
  1. <?php
  2. class koszyk
  3. {
  4. var $artykuly;
  5. function dodaj($numer, $ilosc)
  6. {
  7. $this->$artykuly["$numer"] += $ilosc;
  8. }
  9. function usun($numer, $ilosc)
  10. {
  11. if($this -> $artykuly["$numer"] < $ilsoc) {
  12. $this -> $artykuly["$numer"] -= $ilosc;
  13. } else {
  14. $this -> $artykuly["$numer"] = 0;
  15. }
  16. }
  17. function wyswietl()
  18. {
  19. while(list($k,$v) = each($this -> $artykuly))
  20. if ($v > 0){
  21. echo "Artykul nr $k - $v ilosc<br />;";
  22. }
  23. }
  24. }
  25.  
  26. $koszyk = new Koszyk;
  27. $koszyk -> dodaj('20', 2);
  28. $koszyk -> dodaj('45', 4);
  29. $koszyk -> dodaj('43', 5);
  30. $koszyk -> dodaj('34', 7);
  31. $koszyk -> wyswietl();
  32. ?>


powyższy kod wywala mi błąd:

  1. Notice: Undefined variable: artykuly in /home/www/php/index.php on line 7
  2.  
  3. Fatal error: Cannot access empty property in /home/www/php/index.php on line 7


tylko nie wiem dlaczego kod przepisałem z:

http://www.egrafik.pl/kurs-php/reusage.classes.php

Przyklad 6.2
nospor
Komunikat bledu wyraźnie mowi ze odwolujesz sie do zmiennej 'artykul', której nie ma. W kodzie tutaj masz tylko 'artykuly'

Widzisz roznice?
artykul
artykuly
tonapewno
tak widze tylko ze zauważ że w kodzie nie ma nigdzie "artykul".
nospor
No wlasnie do tego zmierzam... czy napewno pokazałeś nam plik o nazwie index.php ?
tonapewno
już poprawiłem sorka, teraz już jest index.php i taki poprawiony błąd
nospor
Cytat
teraz już jest index.php i taki poprawiony błąd
czyli co bo nie kumam nic z tego co tu napisales
tonapewno
skopiowany został cały mój index.php i bład który mi wyskakuje. bo wcześniej zmieniłem index.php ale go nie zapisałem i bład mi inny wyskakiwał.
nospor
Czyli nadal nic nie kumam smile.gif
Podaj jeszcze raz kod, tym razem aktualny i pokaz dokladnie co ci tym razem wyskakuje
tonapewno
index.php
  1. <?php
  2. class koszyk
  3. {
  4.  
  5. var $artykuly;
  6.  
  7. function dodaj($numer, $ilosc)
  8.  
  9. {
  10.  
  11. $this->$artykuly["$numer"] += $ilosc; // to jest linijka ktora mi error wywala
  12. }
  13.  
  14. function usun($numer, $ilosc)
  15.  
  16. {
  17.  
  18. if($this -> $artykuly["$numer"] < $ilsoc) {
  19.  
  20. $this -> $artykuly["$numer"] -= $ilosc;
  21.  
  22. } else {
  23.  
  24. $this -> $artykuly["$numer"] = 0;
  25.  
  26. }
  27.  
  28. }
  29.  
  30. function wyswietl()
  31.  
  32. {
  33.  
  34. while(list($k,$v) = each($this -> $artykuly))
  35.  
  36. if ($v > 0){
  37.  
  38. echo "Artykul nr $k - $v ilosc<br />;";
  39. }
  40.  
  41. }
  42.  
  43. }
  44.  
  45.  
  46.  
  47. $koszyk = new Koszyk;
  48.  
  49. $koszyk -> dodaj('20', 2);
  50.  
  51. $koszyk -> dodaj('45', 4);
  52.  
  53. $koszyk -> dodaj('43', 5);
  54.  
  55. $koszyk -> dodaj('34', 7);
  56.  
  57. $koszyk -> wyswietl();
  58.  
  59. ?>

error
  1. Notice: Undefined variable: artykuly in /home/www/php/index.php on line 7
  2. Fatal error: Cannot access empty property in /home/www/php/index.php on line 7


Wczesniej edytowałem kod który napisałem wyżej więc jest to samo.
nospor
podoba mi się tekst:
"przepisałem ze strony"

A nie widzisz roznicy pomiedzy
$this->$artykuly
a
$this->artykuly
?

Teraz jedno pod drugim
$this->$artykuly
$this->artykuly

Widac roznice? Jak jest na stronie a jak jest u ciebie? Znajdz 10 roznic winksmiley.jpg

To już poraz kolejny gdy cos skopiujesz skads, powstawiasz wlasne "poprawki" i mowisze ze tekst przepisales ale jest masa bledow... Kurcze chlopie, ty patrz co robisz, szczególnie gdy jest tak początkujący
tonapewno
sorka za wypisywanie głupot, ale teraz mam kolejny problem:
MOJ index.php
  1. <?php
  2. class koszyk
  3. {
  4. var $artykul;
  5.  
  6. function dodaj($numer, $ilosc){
  7. $this -> artykul["$numer"] += $ilosc;
  8. }
  9. function usun ($numer, $ilosc){
  10. if ($this -> artykul["$numer"] > $ilosc ){
  11. $this -> artykul["$numer"] -= $ilsoc;
  12. } else {
  13. $this -> artykul["$numer"] = 0;
  14. }
  15. }
  16. function wyswietl(){
  17. while(list($k, $v) = each($this -> artykul))
  18. if ($v > 0){
  19. echo "Artykul $k - $v sztuk<br />";
  20. }
  21. }
  22. }
  23.  
  24. $koszyk = new Koszyk;
  25. $koszyk -> dodaj("20", 4);
  26. $koszyk -> dodaj("25", 5);
  27. $koszyk -> dodaj("30", 6);
  28. $koszyk -> wyswietl();
  29. ?>
  30.  


error

  1.  
  2. Notice: Undefined index: 20 in /home/www/php/index.php on line 7
  3.  
  4. Notice: Undefined index: 25 in /home/www/php/index.php on line 7
  5.  
  6. Notice: Undefined index: 30 in /home/www/php/index.php on line 7
  7. Artykul 20 - 4 sztuk
  8. Artykul 25 - 5 sztuk
  9. Artykul 30 - 6 sztuk


o co z tym chodzi?
nospor
no tym razem ciala dal autor skryptu. Kod powinien wygladac tak:
  1. //....
  2. function dodaj($numer, $ilosc){
  3. if (!isset($this->artykul[$numer]))
  4. $this->artykul[$numer] = $ilosc;
  5. else
  6. $this->artykul[$numer] += $ilosc;
  7. }
  8. //....
tonapewno
dzięki ci wielkie, już działa jak należy i następnym razem napewno nie będę pisał głupich postów. To był ostatni post.
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.