Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]$$ i tablice
Forum PHP.pl > Forum > Przedszkole
Kamil Pietrzak
witam...

mam nastepnujacy problem

  1. $a = 'ee[2]';
  2. $this->$a = 'rrr';
  3. echo '#1 ' . $this->$a;
  4. echo '<br />';
  5. echo '#2 ' . $this->ee[2];
  6. echo '<br />';
  7. $this->ee[2] = 'gdgd';
  8. echo '#3 ' . $this->ee[2];


wywali mi
#1 rrr
#2
#4 gdgd

nei moge zrozumiec jaka jest roznica pomiedzy
$a = 'ee[2]'
$this->$a
a
$this->ee[2]

konkretniej to chcialem uzyc implode do tablicy utworzonej w ten sposob:
$varName = 'url[' . $this->group . ']';
athei
No a co tu do rozumowania?
  1. $a = 'ee[2]'; // $a to string 'ee[2]'
  2. $this->$a = 'rrr'; // $a to string 'rrr'
  3. echo '#1 ' . $this->$a; // rrr
  4. echo '<br />';
  5. echo '#2 ' . $this->ee[2]; // tablica ee[2] nie istnieje
  6. echo '<br />';
  7. $this->ee[2] = 'gdgd'; // tablica ee[2] = 'gdgd'
  8. echo '#3 ' . $this->ee[2]; //gdgd
Kamil Pietrzak
hm...

tutaj jest caly kod
  1.  
  2. class preloadImages
  3. {
  4. function add($address, $group = 0)
  5. {
  6.  
  7. if(!$this->group) //jesli jeszcze nei ma grupy to ustawia 1
  8. {
  9. $this->group = 1;
  10. }
  11.  
  12. if($group != 0) //jesli podano grupe podczas dodawania obrazka to ustawia nowa
  13. {
  14. $this->group = $group;
  15. }
  16.  
  17. $varName = 'url[' . $this->group . ']'; //ustala nazwe zmiennej adekwatna dla grupy
  18.  
  19. if(strstr($this->$varName, $address) == false) //jesli link jeszcze nie wystepowal w tej grupie to dodaje go do niej i stawia przecinek na koncu
  20. {
  21. $this->$varName .= $address . ',';
  22. }
  23. }
  24.  
  25. function show($group = 'all', $clear = 1)
  26. {
  27. $varName = 'url[' . $group . ']';
  28.  
  29. if($group == 'all') //jesli pierwszy argument rowna sie "all" (automatycznie) to laczy wszystkie grupy
  30. {
  31. $varName = 'url';
  32.  
  33. $this->$varName = implode(',', $this->$varName);
  34. }
  35.  
  36. if($this->$varName) //jesli sa linki dla danej grupy
  37. {
  38. $date = substr($this->$varName, 0, -1); //kasuje ostatni przecinek aby nie wywolac jednego postego "preload('')" na koncu
  39. $date = str_replace(',', '\'); preload(\'', $date); //zamienia przecinki
  40. $date = 'preload(\'' . $date . '\');'; //dodaje to co nalezy na koncu i na poczatku(przecinki sa tylko w srodku)
  41. }
  42.  
  43. if($clear == 1) //jesli drugi argument jest rowny 1 (automatycznie tak jest) to czysci to co do tej pory zostalo zapisane w grupie(aby nie wyswietlac 2 razy tego samego linak na stronie)
  44. {
  45. $this->$varName = '';
  46. }
  47.  
  48. return $date; //zwraca gotowy do wstawienia w <script></script> kod
  49. }
  50. }
  51.  


procz implodowania w #33 jest ok
jesli to nie zostalo przypisane do $this to chyba nie powinno sie poruszac pomiedzy funkcjami
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.