PHP Doku:: Call a function for every element in an iterator - function.iterator-apply.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige GrunderweiterungenStandard PHP Library (SPL)SPL Funktioneniterator_apply

Ein Service von Reinhard Neidl - Webprogrammierung.

SPL Funktionen

<<class_parents

iterator_count>>

iterator_apply

(PHP 5 >= 5.1.0)

iterator_applyCall a function for every element in an iterator

Beschreibung

int iterator_apply ( Traversable $iterator , callback $function [, array $args ] )

Calls a function for every element in an iterator.

Parameter-Liste

iterator

The class to iterate over.

function

The callback function to call on every element.

Hinweis: The function must return TRUE in order to continue iterating over the iterator.

args

Arguments to pass to the callback function.

Rückgabewerte

Returns the iteration count.

Beispiele

Beispiel #1 iterator_apply() example

<?php
function print_caps(Iterator $iterator) {
    echo 
strtoupper($iterator->current()) . "\n";
    return 
TRUE;
}

$it = new ArrayIterator(array("Apples""Bananas""Cherries"));
iterator_apply($it"print_caps", array($it));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

APPLES
BANANAS
CHERRIES

Siehe auch

  • array_walk() - Wendet eine Benutzerfunktion auf jedem Element eines Arrays an


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
kminkler at synacor dot com
2.06.2009 4:02
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;
}

?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)