- var_dump: documentation ( source)
- unserialize: documentation ( source)
- pack: documentation ( source)
<?php
class Container implements Iterator
{
private $container;
private $iterator;
public function __construct()
{
$this->container = new ArrayObject();
$this->iterator = $this->container->getIterator();
}
public function append($element)
{
$this->container->append($element);
}
public function current()
{
return $this->iterator->current();
}
public function next()
{
$this->iterator->next();
}
public function key()
{
return $this->iterator->key();
}
public function valid()
{
return $this->iterator->valid();
}
public function rewind()
{
$this->iterator->rewind();
}
}
$nb = pack('H*', '00');
$php5 = 'O:9:"Container":2:{s:20:"' . $nb . 'Container' . $nb . 'container";C:11:"ArrayObject":53:{x:i:0;a:2:{i:0;s:5:"test1";i:1;s:5:"test2";};m:a:0:{}}s:19:"' . $nb . 'Container' . $nb . 'iterator";C:13:"ArrayIterator":26:{x:i:16777216;r:2;;m:a:0:{}}}';
$container = unserialize($php5);
var_dump($container);
foreach ($container as $key => $value)
{
echo $key . ' => ' . $value . PHP_EOL;
}