Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Generowanie nazwy zmiennej
axwell
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Podwójny znak dolara Ci się wkradł

print($$zmiennadruga[$id]); <-- dwa dolary masz przed zmiennadruga
Go to the top of the page
+Quote Post
axwell
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


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]);

Ten post edytował axwell 24.05.2009, 14:55:30
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@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)
Go to the top of the page
+Quote Post
kkuba
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 6.07.2008
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Może autorowi chodzi po prostu o...

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


? o.o
Go to the top of the page
+Quote Post
axwell
post
Post #6





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


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. ?>


Ten post edytował axwell 24.05.2009, 15:05:02
Go to the top of the page
+Quote Post
sunlifter
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.08.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


To nie lepiej zrobić to na tablicach?
Go to the top of the page
+Quote Post
axwell
post
Post #8





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


na prawdę nikt nie zna rozwiązania?
Go to the top of the page
+Quote Post
kkuba
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 6.07.2008
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


  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..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:22