Podręcznik PHP
Poprzedni
Następny
array_walk
Opis
Wykonuje zdefuniowaną przez użytkownika funkcję o nazwie funk na każdym elemencie tablicy tbl.
Wartość elementu będzie przekazana do funk jako pierwszy parametr, a klucz jako drugi.
Jeśli podany zostanie parametr dane, to będzie on przekazany do funkcji jako trzeci parametr. funk musi być funkcją zdefiniowaną przez użytkownika, a nie natywną funkcją PHP.
W związku z tym nie możesz bezpośrednio użyć array_walk() z str2lower().
Musisz najpierw napisać funkcję zawierającą str2lower() i przekazać tą funkcję jako parametr.
Notatka:
Zamiast nazwy funkcji może zostać przekazana tablica zawierająca referencję do obiektu i nazwę metody
Jeśli funk wymaga więcej niż dwóch lub trzech parametrów, zależnie od parametru dane, wygenerowane będzie ostrzeżenie za każdym razem, kiedy array_walk() będzie wywoływała funk.
Ostrzeżenia te mogą być ukryte przez dodanie znaku '@' przed wywołaniem array_walk() lub używając error_reporting().
Notatka:
Jeśli funk ma zmieniać wartości tablicy, określ pierwszy parametr funk Jeśli funk ma zmieniać wartości tablicy, określ pierwszy parametr funk jako referencję.
W tym przypadku wszystkie zmiany dokonane przez tą funkcję będą dokonywane bezpośrednio na tablicy.
Modyfikacja tablicy z wnętrza funk może powodować nieprzewidziane błędy.
Notatka:
Przekazywanie klucza i danych użytkownika do funk zostało dodane w PHP 4.0
W PHP 4 konieczne jest wywołanie reset() ponieważ array_walk() nie resetuje tablicy domyślnie.
Użytkownicy nie mogą zmieniać samej tablicy z wnętrza funkcji zwrotnej, to jest dodawać / usuwać elementy, usuwać tablicę na której jest wywoływana funkcja array_walk().
Jeśli ta tablica zostanie zmieniona, funkcja może się zachowywać w sposób nieokreślony.
Przykład 1.
Przykład użycia array_walk()
$owoce = array ("d"= "cytryna", "a"= "pomarańcza", "b"= "banan", "c"= "jabłko"); function test_zmiana ($element1, $klucz, $prefiks) {$element1 = "$prefiks: $element1";} function test_wyswietlanie ($element2, $klucz) {echo "$klucz. $element2 br \n";} echo "Przed ...:\n"; array_walk ($owoce, 'test_wyswietlanie'); reset ($owoce); array_walk ($owoce, 'test_zmiana', 'owoc'); echo "... i po:\n"; reset ($owoce); array_walk ($owoce, 'test_wyswietlanie');
Powyższy przykład wyświetli:
Przed...: d. cytryna a. pomarańcza b. banan c. jabłko... i po: d. owoc: cytryna a. owoc: pomarańcza b. owoc: banan c. owoc: jabłko
Patrz także: each() i list().
Poprzedni
Spis treści
Następny
Początek rozdziału