- var_dump: documentation ( source)
<?php
class Shiterator implements SeekableIterator {
private $_array = array();
private $position;
public function __construct(array $array) {
$this->_array = $array;
}
public function seek($position) {
if (!isset($this->_array[$position])) {
throw new OutOfBoundsException("invalid seek position ($position)");
}
$this->position = $position;
}
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->array[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->array[$this->position]);
}
}
$stdcls = new stdClass();
$stdcls->message = 'PHP, still a peice of shit.';
$i = new Shiterator(array($stdcls));
foreach ($i as $t) {
echo $stdcls->message;
$stdcls->message = 'Zend still produces garbage.';
}
var_dump($i);