Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Element pętli w nazwie zmiennej
Forum PHP.pl > Forum > PHP
elipsa
Witam,

mam pewien nietypowy problem, nie bardzo wiem, jak to wyrazić, dlatego spróbuję opisać. Powiedzmy, że mamy pętlę, która wykonuje się 10 razy. Za każdą pętlą chciałbym utworzyć nową zmienną z numerem tej pętli. Jedyne, co mi przychodzi do głowy, to to:

  1. for($i=1; $i<=10; $i++) {
  2. if($i==1) {$zmienna1="cos_tam";}
  3. if($i==2) {$zmienna2="cos_tam";}
  4. if($i==3) {$zmienna3="cos_tam";}
  5. if($i==4) {$zmienna4="cos_tam";}
  6. if($i==5) {$zmienna5="cos_tam";}
  7. if($i==6) {$zmienna6="cos_tam";}
  8. if($i==7) {$zmienna7="cos_tam";}
  9. if($i==8) {$zmienna8="cos_tam";}
  10. if($i==9) {$zmienna9="cos_tam";}
  11. if($i==10) {$zmienna10="cos_tam";}
  12. }


Niestety, to bardzo dużo kodu (np. jeżeli takich pętli będzie 200). Chciałbym to jakoś krócej zapisać, np. coś w tym stylu:

  1. for($i=1; $i<=10; $i++) {$zmienna.$i="cos_tam";}


Niestety, to nie działa :-( Chodzi o to, żeby przy każdej pętli tworzona była zmienna, której nazwa składała by się z jakiegoś słowa i numeru wykonania tej pętli.

Czy jest jakaś możliwość?
Wicepsik
array
tehaha
  1. $variables = array();
  2. for($i=1; $i<=10; $i++)
  3. {
  4. $variables["zmienna_".$i] = "cos_tam";
  5. }
  6. print_r($variables);
  7. echo $variables['zmienna_2'];
Daniel Meger
  1. for($i = 0; $i < 100; $i++) {
  2. $var_name = 'zmienna'.$i;
  3. $$var_name = $i; // albo cokolwiek innego przypisujesz
  4. }

Z tym, że chyba znacznie lepiej jest używać tablic w takich przypadkach.
nemis
Jest taka mozliwosc. Mozesz odwolywac sie do zmiennych o nazwie zawartej w zmiennej.

np.
  1. $nazwa_zmiennej = 'zmienna'.$i;
  2. $$nazwa_zmiennej = WARTOSC;
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.