Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja nie przyjmuje parametrów z zewnątrz (?)
Forum PHP.pl > Forum > PHP
duch4ever
Witam mam dziwny błąd poniżej przykład:

  1. $zmienna = 1;
  2.  
  3. function cosTam($zmienna)
  4. {
  5. return $zmienna;
  6. }
  7. echo cosTam($zmiena);


  1. $zmienna = 1;
  2.  
  3. function cosTam()
  4. {
  5. global $zmienna;
  6. return $zmienna;
  7. }
  8. echo cosTam();


  1.  
  2. function cosTam($zmienna = 1)
  3. {
  4. return $zmienna;
  5. }
  6.  
  7. echo cosTam();


Mam pewien skrypt i w nim funkcje.
Tylko w ostatnim przypadku dostaje wynik, funkcje nie przyjmują parametrów z zewnątrz.
Wiem że jak wkleję ten kod w czysty plik zadziała...

Co może powodować takie zachowanie? Wewnątrz mojego skryptu funkcje nie przyjmują parametrów z zewnątrz...
cycofiasz
Widocznie w momencie wywołania funkcji, zmienna nie istnieje / nie zawiera tego czego się spodziewasz. Daj var_dump($zmienna) nad wywołaniem funkcji
duch4ever
Ale nazwa zmiennej nie ma znaczenia, podstawię bezpośrednio nad funkcją dowolną zmienną z dowolną nazwą a do funkcji jej nie przekaże. Ani jako parametr ani przez global... mega dziwna sprawa.
kadlub
return kończy działanie funkcji więc co ona ma ci robić


  1.  
  2. $zmienna=5;
  3.  
  4. function cosTam($zmienna)
  5. {
  6. $zmienna= $zmienna+2;
  7.  
  8. echo $zmienna;
  9. return;
  10. }
  11. cosTam($zmienna);
  12.  

wstaw sobie w powyższym przykładzie return przed echo i zobacz że zakończy funkcję i nie wyświetli $zmienna
duch4ever
Ja rozumiem zasadę działa funkcji i return, to nie pierwszy skrypt jaki piszę. Problem w tym że każda zmienna we wnętrzu funkcji jest pusta niezależnie jak ją tam przekaże.
cycofiasz
Napiszę jeszcze raz ale w innych słowach: upewnij się że zmienna którą chcesz przekazać do funkcji zawiera wartośc której się spodziewasz.

Daj var_dump(ZMIENNA) bezpośrednio nad wywołaniem funkcji
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.