Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Generowanie nazwy zmiennej
Forum PHP.pl > Forum > Przedszkole
axwell
mam zmienne w takiej postaci:

  1. <?php
  2. print($zmienna[$id]);
  3. ?>


jednak chcę za $zmienna wstawić inną nazwę i nie wiem jak to zrobić. Przykład:

  1. <?php
  2. $zmiennadruga = "tekst";
  3. print($$zmiennadruga[$id]);
  4. ?>


lecz to nie działa
MateuszS
Podwójny znak dolara Ci się wkradł

print($$zmiennadruga[$id]); <-- dwa dolary masz przed zmiennadruga
axwell
No ale o to mi właśnie chodzi, na logikę powinny być dwa znaczki dolara ale jakoś inaczej to trzeba zrobić. Jeśli zrobię tak:

  1. <?php
  2. $zmiennadruga = "tekst";
  3. $id = "19";
  4. print($zmiennadruga[$id]);
  5. ?>


to wyniki będzie:
print(tekst[19]);

a powinno być:
print($tekst[19]);
Crozin
@MateuszScirka: przeczytaj o co chodzi autorowi

Taki kod powinien wyświetlić Ci $tekst[$id]. Jeśli jednak tego nie robi spróbuj:
  1. <?php
  2. $zm = 'tekst';
  3. $abc = $$zm;
  4. echo $abc[$id];
  5. ?>
btw: IMO jeżeli musisz robić zmienne zmiennych to masz jakiś błąd (w założeniach)
kkuba
Może autorowi chodzi po prostu o...

  1. <?php
  2. $gtfo = $zmienna;
  3.  
  4. unset($zmienna);
  5. ?>


? o.o
axwell
chodzi mi o to że na swojej stronie obsługuje 2 języki, polski i angielski. W wybranym jęzku polskim dla informacji na jakiej stronie znajduje się akutalnie użytkownik dla wykonywanego pliku index.php jest np. tak:

  1. <?php
  2. $index[pl] = "Aktualnie przebywasz na stronie głównej";
  3. $index[en] = "You are on main page";
  4. ?>


dla kontakt.php:
  1. <?php
  2. $kontakt[pl] = "Na tej stronie możesz skontaktować się z autorem";
  3. $kontakt[en] = "On this page you can contact with author";
  4. ?>
sunlifter
To nie lepiej zrobić to na tablicach?
axwell
na prawdę nikt nie zna rozwiązania?
kkuba
  1. <?php
  2. $lang[pl][index] = ' ';
  3. $lang[pl][kontakt] = ' ';
  4. $lang[en][index] = ' ';
  5. $lang[en][kontakt] = ' ';
  6. ?>


Polecam to zrobić tak. Język użytkownika możesz zapisywać w sesji, w bazie, w ciastkach, czy gdzie tam sobie chcesz i po prostu wyświetlać:

  1. <?php
  2. echo $lang[$_SESSION['lang']][index];
  3.  
  4. $lng = $_SESSION['lang'];
  5.  
  6. echo $lang[$lng][index];
  7. ?>


Nie wiem co tak komplikujesz wszystko..
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.