Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wracam do podstaw funkcja + return
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam
mam taki problem, mam funkcje a w niej jakąś tam tablice załóżmy że błędów

  1. function returnErrors(){
  2. $error = array();
  3.  
  4. $error['imie'] = "bla bla bla";
  5. $error['nazwisko'] = "bla bla bla";
  6.  
  7. return $error;
  8.  
  9. }
  10.  
  11.  


to jak użyć ten funkcji żeby wyświetliła mi zmienne zawarte w niej ?
viking
  1. $errors = returnErrors();
  2. echo $errors['imie'];


W PHP 5.4 bezpośrednio:

  1. echo returnErrors()['imie']
ghastblood
jako że nie korzystam z obiektów jeszcze chciałem dodać prosty system Internacjonalizacja do tego czy rozwiązanie taki będzie dobre?

  1. function returnErrors(){
  2. global $lang;
  3. $error = array();
  4.  
  5. $error['imie'] = $lang['1'];
  6. $error['nazwisko'] = $lang['2']";
  7.  
  8. return $error;
  9.  
  10. }


powinno mi to pobierać zmienne $lang z poza funkcji czyli np może zrobić sobie folder lang tam wsadzić PL_pl.php a w nim

  1. <?php
  2.  
  3. $lang['1'] = '1';
  4. $lang['2'] = '2';
  5. ?>


czy takie rozwiązanie jest dobre ?
!*!
Nie. Unikaj "global". Zrób funkcje która na podstawie kluczy, będzie zwracać Ci tekst.
viking
Skoro działa i robi co chcesz to zapewne dobre. http://php.net/manual/en/book.gettext.php
ghastblood
no to mnie zagiąłeś. Nawet nie wyobrażam sobie jak taka funkcja miała by działać. Pytanko dlaczego unikać global ?

Cytat(viking @ 20.03.2013, 12:06:09 ) *
Skoro działa i robi co chcesz to zapewne dobre. http://php.net/manual/en/book.gettext.php



Wiesz formularz można zabezpieczyć i można go nie zabezpieczać jedno i drugie działa. Więc nie zawsze działanie idzie w parze z dobrym rozwiązaniem.
!*!
Zacznijmy od tego ze to nie powinna być funkcja, a klasa. Tu masz przykład, jak to powinno wyglądać http://www.forum.legalne.info/php-wielojez...php-t34529.html

Na forum było już wiele tematów i wyjaśnień z ulepszeniami.
ghastblood
Wolał bym się nie pchać jeszcze w obiektówkę chciałem zgłębić na razie podstawy php. Bo podchodziłem już do obiektówki i bardziej to przypominało leniwego programistę na zasadzie kopiuj wklej. A może przyjść taki moment że czegoś nie będzie w necie i będzie trzeba samemu szrajbnąć kodzik.
viking
W takim razie prawidłowym podejściem będzie zastosowanie wbudowanej obługi gettext zgodnie z linkiem który wkleiłem.
!*!
To skopiuj kod z powyższej klasy, do swojej funkcji, albo dwóch. Działanie będzie identyczne.
matiit
http://xion.org.pl/files/texts/mgt/html/1_7.html
Przerób to i klasy nie będą Ci straszne
!*!
Cytat(matiit @ 20.03.2013, 12:26:47 ) *
http://xion.org.pl/files/texts/mgt/html/1_7.html
Przerób to i klasy nie będą Ci straszne


Albo to http://pl.wikibooks.org/wiki/PHP#Programowanie_obiektowe
ghastblood
Dobra dzięki za pomoc myślę że sobie już z tym poradzę wink.gif
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.