svn: /php/php-src/trunk/ NEWS ext/spl/spl_iterators.c ext/spl/spl_iterators.h ext/spl/tests/CallbackFilterIteratorTest-002.phpt
ext/spl/tests/CallbackFilterIteratorTest.phpt ext/spl/tests/RecursiveCallbackFilterIteratorTest.phpt
| From: | Arnaud Le Blanc | Date: | Sun, 27 Mar 2011 20:13:27 +0000 |
| Subject: | svn: /php/php-src/trunk/ NEWS ext/spl/spl_iterators.c ext/spl/spl_iterators.h ext/spl/tests/CallbackFilterIteratorTest-002.phpt ext/spl/tests/CallbackFilterIteratorTest.phpt ext/spl/tests/RecursiveCallbackFilterIteratorTest.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-64761@lists.php.net to get a copy of this message | ||
lbarnaud Sun, 27 Mar 2011 20:13:27 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=309749
Log:
Added CallbackFilterIterator and RecursiveCallbackFilterIterator classes
[DOC] This is a concrete FilterIterator which takes a callback as
constructor parameter, and uses this callback for filtering. This allows
to use FilterIterator without extending it.
CallbackFilterIterator Example:
$it = new ArrayIterator(range(1,100));
$it = new CallbackFilterIterator($it, function($value) {
return $value % 2;
});
foreach($it as $value) // ...
RecursiveCallbackFilterIterator Example:
$it = new RecursiveDirectoryIterator("/");
$it = new RecursiveCallbackFilterIterator($it, function($file, $k, $it) {
return $it->hasChildren() || $file->getSize() > 1024;
});
foreach(new RecursiveIteratorIterator($it) as $file) // ...
The callback takes the current value, the current key and the inner
iterator as parameters.
Changed paths:
U php/php-src/trunk/NEWS
U php/php-src/trunk/ext/spl/spl_iterators.c
U php/php-src/trunk/ext/spl/spl_iterators.h
A php/php-src/trunk/ext/spl/tests/CallbackFilterIteratorTest-002.phpt
A php/php-src/trunk/ext/spl/tests/CallbackFilterIteratorTest.phpt
A php/php-src/trunk/ext/spl/tests/RecursiveCallbackFilterIteratorTest.phpt
Attachment: [text/x-diff] svn-diffs-309749.txt
Attachment: [text/x-diff] svn-diffs-309749.txt