Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przekazanie zmiennej do funkcji
arkos
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

Ostrzeżenie: (20%)
X----


Witam,

Napisałem sobie taką funkcję, która działa prawidłowo:
  1. function array_map_recursive(&$arr){
  2. array_walk_recursive($arr, function(&$val){ $val = call_user_func('strtoupper', $val); });
  3. }


Chciałbym, natomiast abym mógł określić jaka funkcja ma się wykonać na danej tablicy w argumencie (zamiast: strtoupper).
Nie mam już pomysłu jak mogę otrzymać zawartość zmiennej $fnc, w funkcji array_walk_recursive.
Funkcja poniżej oczywiście zwraca błąd, napisałem ją aby bardziej zobrazować o co mi chodzi.
  1. function array_map_recursive(&$arr, $fnc){
  2. array_walk_recursive($arr, function(&$val, &$fnc){ $val = call_user_func($fnc, $val); });
  3. }

Próbowałem również tak:
  1. function array_map_recursive(&$arr, $fnc){
  2. $test = $fnc;
  3. array_walk_recursive($arr, function(&$val){ global $test; $val = call_user_func($test, $val); });
  4. }


Ten post edytował arkos 7.05.2014, 22:01:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Jako 3 parametr
Go to the top of the page
+Quote Post
arkos
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

Ostrzeżenie: (20%)
X----


Cytat(Pyton_000 @ 7.05.2014, 23:39:17 ) *
Jako 3 parametr

Co masz na myśli?

Nie chcę pisać kilku osobnych funkcji całych typu:
  1.  
  2. function arrayMapRecursive_stripslashes(&$arr){
  3. array_walk_recursive($arr, function(&$val){ $val = stripslashes($val); });
  4. }
  5.  
  6. function arrayMapRecursive_strtoupper(&$arr){
  7. array_walk_recursive($arr, function(&$val){ $val = strtoupper($val); });
  8. }
  9.  
  10. function arrayMapRecursive_trim(&$arr){
  11. array_walk_recursive($arr, function(&$val){ $val = trim($val); });
  12. }


Tylko po prostu napisać jedną i w niej podać co na danej tablicy wykonywać: stripslashes, strtoupper, czy trim.

Ten post edytował arkos 7.05.2014, 23:21:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 10:08