Een leuke class die het gemakkelijk maakt om door een array heen te lopen.
<?php
// Iterator class voor het lopen door array's in een object...
class clsIterator implements Iterator {
protected $IteratorArray = array(); // --- Iterator Reference ---
public function rewind() { reset($this->IteratorArray); }
public function current() { return current($this->IteratorArray); }
public function key() { return key($this->IteratorArray); }
public function next() { return next($this->IteratorArray); }
public function valid() { $Key = key($this->IteratorArray); return ($Key !== NULL && $Key !== FALSE); }
public function __construct() { $this->SetIteratorArray( $this->IteratorArray); }
public function SetIteratorArray(array &$IteratorArray) { $this->IteratorArray = &$IteratorArray; }
}
// Voorbeeld gebruik:
class clsMyIterator extends clsIterator {
private $prvArray = array("Test" => "Geslaagd");
public function __construct() { $this->SetIteratorArray($this->prvArray); }
}
$Iterator = New clsMyIterator();
foreach($Iterator as $Key => $Value)
{ echo $Key.'='.$Value.'<BR>'; }
?>
Je kunt hem ook nog uitbreiden met dynamisch benaderen van het array:
public function __get($ID) {
if (array_key_exists($ID, $this->IteratorArray)) {
return $this->IteratorArray[$ID];
} else { return false; }
}
public function __set($ID, $Value) {
$this->IteratorArray[$ID] = $Value;
}
Dus dan kun je dit doen: $Iterator->MaaktAllemaalNietMeerUit = "Geweldig!"
3.700 views