Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pętla na elementach tablicy wewnątrz funkcji [NIE DZIAŁA]
Forum PHP.pl > Forum > Przedszkole
zoorg
witam,

Jeśli ten kod umieszczam w funkcji i wywołuję później tą funkcję - działania w funkcji nie wyświetlają się, jeśli kod wprowadzę poza funkcję - wynik operacji wyświetla się prawidłowo - Czy może ktoś wyjaśnić Dlaczego?

np
  1. function m3(){
  2.  
  3. $tablica = $f2;
  4.  
  5. foreach ($tablica as $wartosc1) {
  6. foreach ($wartosc1 as $wartosc2) {
  7. print "$wartosc2\n";
  8. }
  9. }
  10. echo 'test...';
  11. }
  12.  
  13.  
  14. przy wywołaniu
  15.  
  16. m3();

wynik: test...

dla takiego kodu wewnątrz funkcji wyświetla się tylko kontrolne echo test,
jeśli ten kod umieszczę poza funkcja - wszystko działa poprawnie - Dlaczego?

Tablica jest 2 wymiarowa, w poszczególnych elementach moze znajdować się 0,1,2,3 lub 4, wielokrotnie (w wierszu jest 100 wartości), genealnie chodzi mi o wypisanie w jednej linii po kolei samych 1,2,3,4 wraz z pozycją na której są czyli np dla pozycji

[0][70] 4, [0][75] 4
[0][26] 1, [0][76] 1 itp

dwoma pętlami for (dla xa i ygreka - (poza funkcją) i jednego if ($f2[$g][$h] == 4 echo $h - działa bez problemu. Ale nie moge takiego kodu wprowadzić do funkcji. (w sensie - nic nie zwraca ;]

Ktoś jakieś pomysły? - (poza odesłaniem do manuala ;-) ..co grabię juz kilka godzin..
rad11
a moze print "{$wartosc2}" zadziala ogolnie po co uzywasz print, od tego masz echo smile.gif
aniolekx
przypisujesz $tablica = $f2; a skąd w tej funkcji bierze się owo $f2??
zoorg
zarówno print jak i echo poza funkcją - działają, jeśli ten sam kod wklejam wewnątrz funkcji i wywołuję ją, funkcja nie zwraca nic z iteracji po tablicy,

  1. [code]function bla4(){ for ($g=43;$g<=43;$g++){ // np 44 wiersz tabeli
  2. for ($h=1;$h<=100;$h++){ //kolejne nagłówki
  3. if ($f2[$g][$h] == 4 ){ echo $h ;}
  4. echo 'testyyy'.$f2[$g][$h].' tu jest dalej';
  5. }
  6.  
  7. }
  8. } //END bla4
  9.  
  10.  
  11. bla4();[code]



wynik

testyyy tu jest dalej

----------------------------
ten sam kod POZA FUNKCJĄ, wypisuje kolejne elementy z tablicy, które mają wartość 4 dlaczego nie działa to wew funkcji?

// zamiana na print "($wartość2\n)" , print ($wartosc2) - nic nie poprawia
sazian
jak zauważył @aniolekx zmienna $f2 jest niewidoczna w funkcji
Kshyhoo
Przenoszę do działu Przedszkole. Proszę autora o umieszczenie kodu w stosownym bb-code i dodanie do tytułu tagów.
zoorg
noo tak, w funkiorce wystarczyło
dodać

Kod
global $f2



Dziękuję WAM Ślicznie -)
aniolekx
Cytat(zoorg @ 19.12.2014, 21:42:40 ) *
noo tak, w funkiorce wystarczyło
dodać

Kod
global $f2



Dziękuję WAM Ślicznie -)


OMG....
Boshi
A po co używać funkcji globalnych ...? przekaż ją jako parametr do 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.