Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tablice klas wewnątrz klasy...
Forum PHP.pl > Forum > Przedszkole
lood
Dobry. Napisałem sobie dwie proste klasy dla testu, które wyglądają tak:
  1. <?php
  2.   class prod
  3.   {
  4.        var $nazwa, $cena;
  5.    
  6.        function write()
  7.        {
  8.            echo $this -> nazwa.": ".$this -> cena."$ <br>";
  9.        }
  10.   }
  11.  
  12.   class lista
  13.   {
  14.        private $produkty = array();
  15.        
  16.        public function __construct()
  17.        {
  18.            $this -> produkty = array();
  19.            
  20.            $this -> produkty[0] = new prod;
  21.            $this -> produkty[0] -> nazwa = "jablko";
  22.            $this -> produkty[0] -> cena = 1;
  23.            $this -> produkty[0] -> write();
  24.            
  25.            $this -> produkty[1] = new prod;
  26.            $this -> produkty[1] -> nazwa = "gruszka";
  27.            $this -> produkty[1] -> cena = 2;
  28.            $this -> produkty[1] -> write();
  29.        }
  30.        
  31.        public function show()
  32.        {
  33.            $this -> produkty[0] -> write;
  34.            $this -> produkty[1] -> write;
  35.        }
  36.   }
  37. ?>


No i potem tego czegoś używam:
  1. <?php
  2.   $a = new lista;
  3.   $a -> show();
  4. ?>


Oczekiwanym przeze mnie efektem było więc:
Kod
jablko: 1$
gruszka: 2$
jablko: 1$
gruszka: 2$


... ale jak to często w życiu bywa dostaję coś innego niż to co chciałem:
Kod
jablko: 1$
gruszka: 2$


Tutaj gość miał podobny problem, ale ja jego błędów nie popełniłem. Pytanie brzmi: czemu?
planet
Cytat
ja jego błędów nie popełniłem


a jak w takim razie wytłumaczysz to:

  1. <?php
  2. var $nazwa, $cena;
  3. ?>


powinno być public/protected/private ...

a co do reszty to według mnie powinno być tak (odwołanie do metody a nie do atrybutu):
  1. <?php
  2. public function show()
  3.       {
  4.           $this -> produkty[0] -> write();
  5.           $this -> produkty[1] -> write();
  6.       }
  7. ?>
lood
Fail, to była idiotyczna literówka. A tyle się nad tym głowiłem i tego nie zauważyłem. No nic :/
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.