SPL-StandardPHPLibrary
Public Member Functions | Public Attributes | Private Attributes
RecursiveArrayIterator Class Reference
Inheritance diagram for RecursiveArrayIterator:
Inheritance graph
[legend]
Collaboration diagram for RecursiveArrayIterator:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 append ($value)
 asort ()
 count ()
 current ()
 getArrayCopy ()
 getChildren ()
 getFlags ()
 hasChildren ()
 key ()
 ksort ()
 natcasesort ()
 natsort ()
 next ()
 offsetExists ($index)
 offsetGet ($index)
 offsetSet ($index, $newval)
 offsetUnset ($index)
 rewind ()
 seek ($position)
 setFlags ($flags)
 uasort (mixed cmp_function)
 uksort (mixed cmp_function)
 valid ()

Public Attributes

const ARRAY_AS_PROPS = 0x00000002
const STD_PROP_LIST = 0x00000001

Private Attributes

 $ref

Detailed Description

A recursive array iterator.

Author:
Marcus Boerger
Version:
1.0
Since:
PHP 5.1

Passes the RecursiveIterator interface to the inner Iterator and provides the same functionality as FilterIterator. This allows you to skip parents and all their childs before loading them all. You need to care about function getChildren() because it may not always suit your needs. The builtin behavior uses reflection to return a new instance of the exact same class it is called from. That is you extend RecursiveFilterIterator and getChildren() will create instance of that class. The problem is that doing this does not transport any state or control information of your accept() implementation to the new instance. To overcome this problem you might need to overwrite getChildren(), call this implementation and pass the control vaules manually.

Definition at line 30 of file recursivearrayiterator.inc.


Member Function Documentation

ArrayIterator::append ( value) [inherited]
Parameters:
$valueis appended as last element
Warning:
this method cannot be called when the ArrayIterator refers to an object.

Definition at line 818 of file spl.php.

{}
ArrayIterator::asort ( ) [inherited]

Sort the entries by values.

Definition at line 773 of file spl.php.

{}
ArrayIterator::count ( ) [inherited]
Returns:
the number of elements in the array or the number of public properties in the object.

Implements Countable.

Definition at line 834 of file spl.php.

{}
ArrayIterator::current ( ) [inherited]

Return the current element.

Implements Iterator.

Reimplemented in SubClasses.

Definition at line 843 of file spl.php.

Referenced by getChildren(), and hasChildren().

{}
ArrayIterator::getArrayCopy ( ) [inherited]
Returns:
a copy of the array
Note:
when the ArrayIterator refers to an object then this method returns an array of the public properties.

Definition at line 824 of file spl.php.

{}
RecursiveArrayIterator::getChildren ( )
Returns:
an iterator for the current elements children
Note:
the returned iterator will be of the same class as $this

Implements RecursiveIterator.

Definition at line 43 of file recursivearrayiterator.inc.

References ArrayIterator\current().

    {
        if ($this->current() instanceof self)
        {
            return $this->current();
        }
        if (empty($this->ref))
        {
            $this->ref = new ReflectionClass($this);
        }
        return $this->ref->newInstance($this->current());
    }

Here is the call graph for this function:

ArrayIterator::getFlags ( ) [inherited]
Returns:
current flags

Definition at line 769 of file spl.php.

{}
RecursiveArrayIterator::hasChildren ( )
Returns:
whether the current element has children

Implements RecursiveIterator.

Definition at line 34 of file recursivearrayiterator.inc.

References ArrayIterator\current().

    {
        return is_array($this->current());
    }

Here is the call graph for this function:

ArrayIterator::key ( ) [inherited]

Return the key of the current element.

Implements Iterator.

Definition at line 846 of file spl.php.

Referenced by SubClasses\current().

{}
ArrayIterator::ksort ( ) [inherited]

Sort the entries by key.

Definition at line 777 of file spl.php.

{}
ArrayIterator::natcasesort ( ) [inherited]

Sort the entries by values using case insensitive "natural order" algorithm.

Definition at line 793 of file spl.php.

Referenced by SubClasses\current().

{}
ArrayIterator::natsort ( ) [inherited]

Sort the entries by values using "natural order" algorithm.

Definition at line 789 of file spl.php.

{}
ArrayIterator::next ( ) [inherited]

Move forward to next element.

Implements Iterator.

Definition at line 849 of file spl.php.

{}
ArrayIterator::offsetExists ( index) [inherited]
Parameters:
$indexoffset to inspect
Returns:
whetehr offset $index esists

Implements ArrayAccess.

Definition at line 798 of file spl.php.

{}
ArrayIterator::offsetGet ( index) [inherited]
Parameters:
$indexoffset to return value for
Returns:
value at offset $index

Implements ArrayAccess.

Definition at line 803 of file spl.php.

{}
ArrayIterator::offsetSet ( index,
newval 
) [inherited]
Parameters:
$indexindex to set
$newvalnew value to store at offset $index

Implements ArrayAccess.

Definition at line 808 of file spl.php.

Referenced by SubClasses\__construct().

{}
ArrayIterator::offsetUnset ( index) [inherited]
Parameters:
$indexoffset to unset

Implements ArrayAccess.

Definition at line 812 of file spl.php.

{}
ArrayIterator::rewind ( ) [inherited]

Rewind the Iterator to the first element.

Implements Iterator.

Definition at line 837 of file spl.php.

{}
ArrayIterator::seek ( position) [inherited]
Parameters:
$positionoffset to seek to
Exceptions:
OutOfBoundsExceptionif $position is invalid

Implements SeekableIterator.

Definition at line 829 of file spl.php.

{}
ArrayIterator::setFlags ( flags) [inherited]

Set behavior flags.

Parameters:
$flagsbitmask as follows: 0 set: properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.) 1 set: array indices can be accessed as properties in read/write

Definition at line 764 of file spl.php.

{}
ArrayIterator::uasort ( mixed  cmp_function) [inherited]

Sort the entries by values using user defined function.

Definition at line 781 of file spl.php.

{}
ArrayIterator::uksort ( mixed  cmp_function) [inherited]

Sort the entries by key using user defined function.

Definition at line 785 of file spl.php.

Referenced by SubClasses\__construct().

{}
ArrayIterator::valid ( ) [inherited]

Check if there is a current element after calls to rewind() or next().

Implements Iterator.

Definition at line 840 of file spl.php.

{}

Member Data Documentation

RecursiveArrayIterator::$ref [private]

Definition at line 56 of file recursivearrayiterator.inc.

const ArrayIterator::ARRAY_AS_PROPS = 0x00000002 [inherited]

Array indices can be accessed as properties in read/write.

Definition at line 747 of file spl.php.

const ArrayIterator::STD_PROP_LIST = 0x00000001 [inherited]

Properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.)

Definition at line 745 of file spl.php.


The documentation for this class was generated from the following file: