Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmienne {0}
Forum PHP.pl > Forum > Przedszkole
bobo1
Witam,

zastanawiam się w jaki sposób zrobić coś takiego, że w jak wyświetlam zmienną, to żeby nie podawać jej nazwy tylko coś takiego {0}

Może mały przykład:
  1. <?php
  2. echo' {0} to miasto w {1}';
  3. ?>

w miejsce {0} wstawiam zmienną $miasto a w {1} $panstwo

Czy ktoś wie jak coś takiego zrobić? Jestem również zainteresowany innymi rozwiązaniami, które pomijają nazwy zmiennej.

Pozdr
Kildyt
Jak dla mnie możesz zrobić to przy użyciu srt_replace.

  1. <?php
  2.  
  3. $text = '{0} to miasto w {1}';
  4. $zmienna1 = 'raz';
  5. $zmienna 2 = 'dwa';
  6.  
  7. $wynik = str_replace('{0}', $zmienna1, $text);
  8. $wynik = str_replace('{1}', $zmienna2, $wynik);
  9.  
  10. echo $wynik;
  11.  
  12. ?>


Inny, dość odmienny sposób to użyciu define. Jest to po prostu inny sposób wyświetlenie zmiennej (bez dolara).

np.:
  1. <?php
  2.  
  3. define('RAZ', 'treść');
  4.  
  5. echo RAZ;
  6. echo 'bla bla bla '.RAZ.' bleblebele';
  7.  
  8. ?>
drPayton
Cytat(Kildyt @ 5.10.2008, 12:57:12 ) *
(...)

Inny, dość odmienny sposób to użyciu define. Jest to po prostu inny sposób wyświetlenie zmiennej (bez dolara).

(...)


Taka 'zmienna' to się 'stała' nazywa haha.gif
Kildyt
Ta i niech się tak nazywa. tongue.gif Początkujący mogą nie wiedzieć co to stała, a i od zmiennej bardzo się nie różni.

PS Nie używam stałych to dużego doświadczenia nie mam, jednak i tak poooojechaaałem, że hej biggrin.gif
PS2 Użycie str_replace przy dużych danych jest dosyć niewygodne. Może ktoś zna jakiś inny sposób. Żeby cały czas nie używać str_replace, efekt działania możesz zapisać do cache'u i wtedy nie będzie musiało cały czas wykonywać funkcji, a jedynie wczytać już wcześniej zapisany plik.
bobo1
Chodzi o zmienne smile.gif

rozwiązanie z str_replace podoba mi się smile.gif. Generalnie nie chodzi mi o pozbycie się $ ze zmiennej tylko nie operowanie na zmiennych tylko na jakiś prostych "wskaźnikach" (o ile tak można to nazwać), które będą reprezentować zmienną.

Widziałem jeszcze w zapisie rozwiązanie ze znakiem procentowym %s

Myślicie, że to jest rozwiązane również przy pomocy str_replace czy może jakiś inny sposób ?
Lars
Nie dość, że niewygodne, to może być dość wolne. Dlatego lepiej użyć tablic jako argumentów. Wtedy mamy 1 instrukcję:
  1. <?php
  2. $from=array('{0}', '{1}', '{2}');
  3. $to=array($var0, $var1, $var2);
  4. echo str_replace($from, $to, $text);
  5. ?>


Pozdrawiam.
bobo1
Rozwiązanie sprintf lub zastosowanie str_replace w tablicy wydają się najrozsądniejsze.

Dzięki
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.