Php/docs/class.callbackfilteriterator

来自菜鸟教程
跳转至:导航、​搜索

(PHP 5 >= 5.4.0, PHP 7)

类摘要


CallbackFilterIterator extends FilterIterator implements OuterIterator {

/* 方法 */

public __construct ( Iterator $iterator , callable $callback )

public accept ( ) : bool

/* 继承的方法 */

public abstract FilterIterator::accept ( ) : bool

public FilterIterator::__construct ( Iterator $iterator )

public FilterIterator::key ( ) : mixed

public FilterIterator::next ( ) : void

public FilterIterator::rewind ( ) : void

public FilterIterator::valid ( ) : bool

}

范例

The callback should accept up to three arguments: the current item, the current key and the iterator, respectively.

Example #1 Available callback arguments

<?php/** * Callback for CallbackFilterIterator * * @param $current   Current item's value * @param $key       Current item's key * @param $iterator  Iterator being filtered * @return boolean   TRUE to accept the current item, FALSE otherwise */function my_callback($current, $key, $iterator) {    // Your filtering code here}?>

Any callable may be used; such as a string containing a function name, an array for a method, or an anonymous function.

Example #2 Callback basic examples

<?php$dir = new FilesystemIterator(__DIR__);// Filter large files ( > 100MB)function is_large_file($current) {    return $current->isFile() && $current->getSize() > 104857600;}$large_files = new CallbackFilterIterator($dir, 'is_large_file');// Filter directories$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {    return $current->isDir() && ! $iterator->isDot();});?>

Table of Contents