Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]array_map i wywolanie funkcji zdefiniowanej w class
Forum PHP.pl > Forum > Przedszkole
piasekps
witam

mam problem z array_map
skorzystalem z przykladu nr dwa z stripslashes
i przepisalem funkcje wywalajaca slashe z podanej zmiennej,
problem polega na tym ze nie dziala gdy funkcja jest czescia class'y
w przykladzie ponizszym dostaje spowrotem taki sam string jaki wprowadzam
  1. function subSlash ($value)
  2. {return is_array($value) ? array_map($this->subSlash, $value) : stripslashes($value);}

zakladam ze blednie wprowadzam nazwe/namiary na funkcje
probowalem zamiast $this->subSlash rowniez:
'$this->subSlash',
'subSlash',
'class_name::subSlash',
class_name::subSlash

i wyskoczyl mi taki blad:

Warning: array_map() [function.array-map]: The first argument, ‘$this->subSlash’, should be either NULL or a valid callback in sysInfo.class.php on line 249

ale jak w/w funkcja nie jest w class'ie to ladnie smiga
co robie zle?

dzieki za pomoc
p.s.
Fifi209
A nie ma ona dostać w pierwszym argumencie funkcji a nie zmiennej ?
piasekps
Cytat(fifi209 @ 5.10.2009, 22:37:54 ) *
A nie ma ona dostać w pierwszym argumencie funkcji a nie zmiennej ?


no tak, ma dostac funkcje i probuje wlasnie zwrocic funkcje $this->subSlash
tylko jak pisalem wyzej, probowalem 5 roznych mozliwosci zwrocenia i nie
smiga....
Fifi209
Może tak: $this->subSlash() ?
wookieb
NO NIE! http://pl.php.net/callback
  1. array_map( array($this, 'NAZWA_METODY!!!'), $TABLICA);
piasekps
Cytat(wookieb @ 6.10.2009, 10:51:28 ) *
  1. array_map( array($this, 'NAZWA_METODY!!!'), $TABLICA);


  1. class sysInfo
  2. {
  3. ...
  4. function subSlash ($value)
  5. {return is_array($value) ? array_map($this, 'subSlash', $value) : stripslashes($value);}
  6. }
  7.  
  8. class Project
  9. {
  10. ...
  11. function showVal($val)
  12. {echo sysInfo::subSlash($val);}
  13. }


sprawdzilem te metode,
i w clasie Project wywoluje te funkcje w nastepujacy sposob sysInfo::subSlash($value)
i teraz wyskoczyl mi komunikat

Catchable fatal error: Object of class Project could not be converted to string in sysInfo.class.php on line 249


oczywiscie ze tak, "Może tak: $this->subSlash() ?" nie, bo wyskoczy blad ze funkcja $this->subSlash() potrzebuje argumentu
.....
wookieb
To sprawdź z 5 razy jak napisałem i CZYTAJ MANUAL
piasekps
Cytat(wookieb @ 6.10.2009, 12:12:12 ) *
To sprawdź z 5 razy jak napisałem i CZYTAJ MANUAL



ok dzieki, za szybko sie zabralem, za to i nie zauwazylem ze jest tam array
tylko ze zamiast $this, musialem ustawic nazwe classy w ktorej znajduje sie
funkcja subSlash, bo inaczej $this bylo brane z classy z ktorej wywoluje funkcje subSlash

dzieki wookieb
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.