To clarify, this method does not work exactly like array_walk(), since the current key/value of the iterator is not passed to the callback function.
This php method is equivalent to:
<?php
function iterator_apply(Traversable $iterator, $function, array $args)
{
$count = 0;
foreach ($iterator as $ignored)
{
call_user_func_array($function, $args);
$count++;
}
return $count;
}
?>
iterator_apply
(PHP 5 >= 5.1.0)
iterator_apply — Llama una función para cada elemento en un iterador
Descripción
Llamar una función para cada elemento en un iterador.
Parámetros
-
iterator -
La clase a ser iterada.
-
function -
La función de llamada de recorno a llamar para cada elemento.
Nota: Esta función debe retornar
TRUEpara con el fin de seguir con la iterando eliterator. -
args -
Argumentos que van a ser pasados a la función de llamada de retorno.
Valores devueltos
Devuelve el número de iteraciones.
Ejemplos
Ejemplo #1 Ejemplo de iterator_apply()
<?php
function print_caps(Iterator $iterator) {
echo strtoupper($iterator->current()) . "\n";
return TRUE;
}
$it = new ArrayIterator(array("Manzanas", "Bananas", "Cerezas"));
iterator_apply($it, "print_caps", array($it));
?>
El resultado del ejemplo sería:
MANZANAS BANANAS CEREZAS
kminkler at synacor dot com ¶
3 years ago
