SPL 函数
在线手册:中文  英文

iterator_apply

(PHP 5 >= 5.1.0)

iterator_apply为迭代器中每个元素调用一个用户自定义函数

说明

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

循环迭代每个元素时调用某一回调函数。

参数

iterator

需要循环迭代的类对象。

function

迭代到每个元素时的调用的回调函数。

Note: 为了遍历 iterator 这个函数必须返回 TRUE

args

传递到回调函数的参数。

返回值

返回已迭代的元素个数。

范例

Example #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));
?>

以上例程会输出:

APPLES
BANANAS
CHERRIES

参见


SPL 函数
在线手册:中文  英文

用户评论:

kminkler at synacor dot com (2009-06-01 19:02:23)

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;
}

?>

易百教程