for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SMW\Notifications\Iterators;
use Iterator;
use ArrayIterator;
use RecursiveIterator;
use RuntimeException;
/**
* Pretends to be a RecursiveIterator without children
*
* @see EchoNotRecursiveIterator
* @license GNU GPL v2+
* @since 1.0
*/
class ChildlessRecursiveIterator implements RecursiveIterator {
* @var Iterator
protected $iterator;
* {@inheritDoc}
public function __construct( $iterator ) {
if ( is_array( $iterator ) ) {
$iterator = new ArrayIterator( $iterator );
}
if ( !$iterator instanceof Iterator ) {
throw new RuntimeException( "ChildlessRecursiveIterator expected an Iterator" );
$this->iterator = $iterator;
public function current() {
return $this->iterator->current();
public function key() {
return $this->iterator->key();
public function next() {
return $this->iterator->next();
public function rewind() {
return $this->iterator->rewind();
public function valid() {
return $this->iterator->valid();
public function hasChildren() {
return false;
public function getChildren() {
return null;