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