Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie z tablicy
Forum PHP.pl > Forum > Przedszkole
yacol
Witam!
Mam maly problem, z ktorym nie potrafie sobie poradzic...
Mianowicie mam tablice:
$HEADERS_pl = array(
about => "Informacje o firmie",
services => "Usługi",
...
)
oraz

$HEADERS_en = array(
about => "About",
services => "Services",
...
)

i chce pobierac dane z tablicy w zaleznosci od parametru lang =pl albo =en i nie potrafie sobie z tym poradzic


jesli wstawie $HEADERS_en[$section] badz $HEADERS_pl[$section] to mi elegancko pobiera i wyswietla, ale ja chcialbym, zeby to en badz pl dopisywalo sie samo w zaleznosci od zmiennej $lang...

i nie potrafie :/
nospor
  1. <?php
  2.  
  3. echo ${'HEADERS_'.$lang}[$section];
  4.  
  5. ?>
yacol
Wy to jestescie jednak ASY!!!

działa, dzieki wielkie...

Jeszcze tylko jedno pytanko jesli mozna: Kiedy i gdzie stosujemy nawiasy klamrowe {} i dlaczego tutaj tez je trzeba bylo uzyc?
nospor
w tym przypadku użyto {}, aby znaczek $ chwycił całą żądaną frazę. Po znaczku $ występuję nazwa zmiennej, a że my dopiero tworzymy tą nazwę, więc {}
yacol
nie odchodzac zbytnio od tematu, czy moglibyscie mi powiedziec co oznacza zapis
<?=$SUBS[$sub]?"$SUBS[$sub]":"$HEADERS[$section]";?>

<?= ?> jest równowazne <? echo ?>
ta linijka ma pobierac dane z tablicy, ale nie bardzo lapie, co tu sie dzieje? po co jest ten ? w srodku i ":" ? sad.gif
nospor
<?=ala ?> jest równowazne <? echo 'ala';?>

zapis:
warunek ? prawda : falsz

jest równoważny:
if (warunek)
prawda
else
falsz

widać ze krócej.
przyklad;
  1. <?php
  2.  
  3. $y = 2;
  4.  
  5. $x = ($y == 1 ? 2 : 3);
  6. echo $x;
  7. //jest równoważne
  8. if ($y == 1)
  9. $x = 2;
  10. else 
  11. $x = 3;
  12. echo $x;
  13.  
  14.  
  15. ?>
yacol
Czyli w tym przypadku:
jesli istnieje $SUBS[$sub] to wyswietl $SUBS[$sub]
a jesli nie to wyswietl $HEADERS[$section]


?
nospor
teoretycznie tak biggrin.gif
a dokładniej :
jeżeli istnieje i jego wartość jest rożna od 0 i ciągu pustego
yacol
ale truje tylek... :/
sorki, ale zaczynam zabawe z php i nie mam sie kogo poradzic, a w kursach takich rzeczy nie moge znalzezc :/

teraz np. ta linijka
<?=$SUBS[$sub]?"$SUBS[$sub]":"$HEADERS[$section]";?>

wyswietla mi tekst Array[wartosc_zmiennej_sub] zamiast tego co jest w tabeli do danej zmiennej $sub podpiete
nospor
zadajesz duzo pytan moze więc czas się zarejestrować? Ale jak wolisz.

zamień na:
  1. <?=$SUBS[$sub]?$SUBS[$sub]:$HEADERS[$section];?>

"" w tym przypadku są zbędne
yacol
wlasne to przed chwilka uczynilem tj. zarejestrowalem sie...

ale wracajac do tematu: jestes dla mnie geniuszem... teraz elegancko dziala...

czemu taki cudzyslow potrafi tak namieszac? kiedy go sie stosuje?
nospor
Cytat
jestes dla mnie geniuszem.
Nie przesadzajmy (ale plusy zarabiasz biggrin.gif )

co do cudzusłowa. Chciales wyswietlic zmienną i nie ma sensu jej brać w cudzyslów. Tym bardziej gdy to skomplikowana zmienna. Jak bys chcial nadal ją w cudzyslowie to trzeba by tak: "{$SUBS[$sub]}"
Za dlugo by gadać. Poczytaj se najpierw o stringach w php, sposobie ich łączenia, o różnicach pomiędzy pojedynczym(') a podwojnym(") cudzyslowiem i dopiero potem w razie probemów wal na forum.
najpierw trzeba poznac podstawy, by nie potrzebnych pytan nie zadawac. Zapoznaj się też z regulaminem i strukturą forum, by wiedzieć gdzie i jak zadawać pytania.

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