Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z konstruktorem
Forum PHP.pl > Forum > Przedszkole
marcinp1984
Witam

Mam fragment kody znaleziony w sieci, który próbuje przerobić po swojemu. Niestety póki co nic nie mogę zrobić bo ciągle wyrzuca mi jakieś errory :/
A więc mam takie coś:

  1. $dane['imie'] = 'xxx';
  2. $dane['nazwisko'] = 'yyy';
  3. $dane['id'] = '1';
  4. $dane['email'] = 'zzz';
  5.  
  6. class Lista
  7. {
  8. public function __construct($list=array())
  9. {
  10. foreach($list as $n->$v)
  11. $this->$n=$v;
  12. }
  13.  
  14. (...)
  15.  
  16. }
  17.  
  18. $new = new Lista($dane);
  19.  


I ciągle wywala się na 10 linij kodu:

Fatal error: Cannot access empty property in /home/marcinpm/domains/pawlak-marcin.pl/public_html/panel_aukcji/allegro.inc.php on line 10


Co właściwie oznacza ten zapis
  1. foreach($list as $n->$v)

Bo nigdzie na ten temat nie mogę nic znaleźć. Jedyne c znalazłem to coś w tym stylu
  1. foreach($list as $n=>$v)

Ale to chyba nie to samo biggrin.gif

W czym tu może leżeć problem?
sada

nie
  1. $this->$n=$v;


tylko tak
  1. $this->n=$v;
marcinp1984
Ale ciągle się niestety zatrzymuje na tej 10 linijce :/
potreb
Zauważ jedno. Rozbijasz dane. Metoda taka:

  1. foreach($list as $n=>$v)
  2. $this->$n=$v;


Znajdzie zastosowanie, chodzi tutaj że do this przypisujesz nazwę pola (imie, nazwisko, id, email) poprzez rozbicie tablicy. Ja taką metodę stosuje u siebie, jest bardzo pomocna przy szybkim przetwarzaniu danych.

W ten sposób co przedstawił ci sada, this zostanie raz zainicjonowana i nie rozbije ci danych. Musiałbyś użyć takiej metody $this->n[$n];
sada
  1. foreach($list as $n=>$v)
marcinp1984
hmmm... czyli teoretycznie można stwierdzić, że ten kod, który wkleiłem na początku powinien być w porządku?
potreb
Tak. I popraw foreach bo zrobiłeś byka $n->$v, powinno być $n=>$v, więc sada ci to wyłapał, ja nie odrazu
marcinp1984
Aha... czyli jednak tu tkwił błąd smile.gif Dzięki wielkie ja kombinuje dalej smile.gif
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.