array_walkBir dizinin her üyesine kullanıcı tanımlı bir işlevi uygular
&reftitle.description;
truearray_walkarrayobjectdizicallableişlevmixedveri&null;dizi dizisinin her elemanına kullanıcı tarafından
tanımlanmış işlev işlevini uygular.
array_walk işlevi dizinin dahili göstericisinin
konumunda etkilenmez. Dizinin dahili göstericisini dikkate almaksızın dizi
elemanları üzerinde sırayla işlem yapar.
&reftitle.parameters;
dizi
İşleme sokulacak dizi.
işlev
Normalde, işlev iki bağımsız değişken alır. İlki
dizi bağımsız değişkeninin değeri, ikincisi ise
indis veya anahtardır.
Eğer işlev işlevinin doğrudan dizinin kendisi
üzerinde işlem yapması gerekiyorsa işlevin ilk bağımsız değişkeni bir
gönderim olarak belirtilir.
Böylece elemanlar üzerinde yapılan her değişiklik özgün dizide de
yapılmış olur.
Birçok dahili işlev, (örneğin, strtolower),
beklenenden fazla bağımsız değişken aktarılırsa ve doğrudan
işlev olarak kullanılamazsa bir uyarı çıktılar.
Potansiyel olarak yalnızca dizi değerleri
değiştirilebilir; yapısı değiştirilemez, yani programcı öğeleri
ekleyemez, ayarlayamaz veya yeniden sıralayamaz. Geri çağırım
işlevi bu gereksinimi karşılamıyorsa,
array_walk işlevinin davranışı tanımsızdır ve
öngörülemez.
veri
Eğer isteğe bağlı veri bağımsız değişkeni
belirtilmişse, değeri işlev işlevine üçüncü
bağımsız değişken olarak aktarılır.
&reftitle.returnvalues;
&return.true.always;
&reftitle.errors;
PHP 7.1.0'dan itibaren, geri çağırım işlevi 2'den
fazla bağımsız değişken (dizi üyesinin değeri ve anahtarı) gerektiriyorsa veya
isteğe bağlı veri bağımsız değişkeninin belirtilmesi
durumunda 3'ten fazla bağımsız değişken gerektiriyorsa, bir
ArgumentCountError istisnası üretilir. Evvelce,
işlev belirtilenden daha fazla bağımsız değişken
gerektirdiğinde array_walk işlevinin yaptığı her
işlev çağrısında
E_WARNING seviyesinde bir
uyarı üretilirdi.
&reftitle.changelog;
&Version;&Description;
&return.type.true;
8.0.0işlev geri çağırım işlevinin ikinci ve üçüncü
bağımsız değişkeni için de gönderimli bağımsız değişken gerekiyorsa bu işlev
artık E_WARNING seviyesinde bir uyarı üretiyor.
&reftitle.examples;
- array_walk örneği
"limon", "a" => "ayva", "b" => "muz", "c" => "elma");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2\n";
}
echo "Önce ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... ve sonra:\n";
array_walk($fruits, 'test_print');
?>
]]>
&example.outputs;
- İsimsiz işlev kullanılan array_walk örneği
{$value}\n";
});
?>
]]>
&example.outputs;
a
1 => b
2 => c
]]>
&reftitle.seealso;
array_walk_recursiveiterator_applylisteachcall_user_func_arrayarray_map&foreach;