Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyechować element z array?
Saki
post
Post #1





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Witam, mam problem z wyechowaniem elementu z array, kod:
najpierw ładujemy plik z tekstem:
  1. require_once('language.php');


w pliku standardowo:
  1. $lang[22] = 'bla bla';
  2. $lang[23] = 'bla bla';
  3. $lang[24] = 'bla bla';


  1. function ograniczenie () {
  2. if ( @$_SESSION['time'] < time() ) {
  3. $_SESSION['time'] = time()+4;
  4. }
  5. else {
  6. die ($lang[22]); // ma zostać wyechowane
  7. }
  8. }


gdy dodam stały tekst zamiat zmiennej działa echowanie:
  1. function ograniczenie () {
  2. if ( @$_SESSION['time'] < time() ) {
  3. $_SESSION['time'] = time()+4;
  4. }
  5. else {
  6. die ('bla bla'); // to echuje
  7. }
  8. }


tylko czemu nie wyswietla mi z die ($lang[22]);?
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Zasięg zmiennych, $lang nie jest widoczne w funkcji ograniczenie
Go to the top of the page
+Quote Post
Saki
post
Post #3





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(vokiel @ 27.12.2012, 17:21:34 ) *
Zasięg zmiennych, $lang nie jest widoczne w funkcji ograniczenie


Jak to poprawić?

Ten post edytował Saki 27.12.2012, 17:53:33
Go to the top of the page
+Quote Post
Smertius
post
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

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


Przekaż $lang jako parametr funkcji. Broń boże nie stosuj zmiennych globalnych.
Go to the top of the page
+Quote Post
Saki
post
Post #5





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(Smertius @ 27.12.2012, 18:19:36 ) *
Przekaż $lang jako parametr funkcji. Broń boże nie stosuj zmiennych globalnych.


Co masz na myśli?
Teraz zrobiłem tak: global $lang;
i działa, a jak Ty byś to zrobił?

Nie działa jak zrobiłem tak:

  1. function ograniczenie ($lang) { // ani nie działa &$string
  2. //global $lang;
  3. if ( @$_SESSION['time'] < time() ) {
  4. $_SESSION['time'] = time()+4;
  5. }
  6. else {
  7. die ($lang[22]);
  8. }
  9. }


Ten post edytował Saki 27.12.2012, 18:46:30
Go to the top of the page
+Quote Post
Smertius
post
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

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


Robisz to w taki sposób jak poniżej?
  1.  
  2. require_once('language.php');
  3.  
  4. function ograniczenie ($lang) { // ani nie działa &$string
  5. if ( @$_SESSION['time'] < time() ) {
  6. $_SESSION['time'] = time()+4;
  7. }
  8. else {
  9. die ($lang[22]);
  10. }
  11. }
  12.  
  13. ograniczenie($lang)


Jeśli tak i nie działa, to po prostu nie masz żadnej wartości w zmiennej $lang, zrób sobie var_dumpa i zobacz co tam siedzi.

Ten post edytował Smertius 27.12.2012, 18:59:00
Go to the top of the page
+Quote Post
Saki
post
Post #7





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(Smertius @ 27.12.2012, 18:58:44 ) *
Robisz to w taki sposób jak poniżej?
  1.  
  2. require_once('language.php');
  3.  
  4. function ograniczenie ($lang) { // ani nie działa &$string
  5. if ( @$_SESSION['time'] < time() ) {
  6. $_SESSION['time'] = time()+4;
  7. }
  8. else {
  9. die ($lang[22]);
  10. }
  11. }
  12.  
  13. ograniczenie($lang)


Jeśli tak i nie działa, to po prostu nie masz żadnej wartości w zmiennej $lang, zrób sobie var_dumpa i zobacz co tam siedzi.


  1. require_once('language.php');
  2. var_dump($lang);
  3. function ograniczenie ($lang) {
  4. //global $lang;
  5. if ( @$_SESSION['time'] < time() ) {
  6. $_SESSION['time'] = time()+4;
  7. }
  8. else {
  9. die ($lang[22]);
  10. }
  11. }


var_dump wyświetla wszystko ładnie tylko nie wyświetla się "die ($lang[22]);"
  1. [22]=> string(57) "xxxx." [23]=> string(72) "xxxx" [24]=> string(32) "xxx" [25]=> string(34) "xxx"

o co chodzi? czemu nie działa?

jeżeli jest global $lang; to działa wszystko. dziwne

Ten post edytował Saki 27.12.2012, 19:12:12
Go to the top of the page
+Quote Post
fragov
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 19.11.2011

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


  1. function ograniczenie ($lang) {
  2. //global $lang;
  3. if ( @$_SESSION['time'] < time() ) {
  4. $_SESSION['time'] = time()+4;
  5. }
  6. else {
  7. die ($lang[22]);
  8. }
  9. }
  10.  
  11. ograniczenie($lang);


Funkcja oraz wywołanie funkcji z przekazanym parametrem.(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Saki
post
Post #9





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Z ciekawości, czemu nie należy używać global?
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: 4.10.2025 - 14:27