Вы можете заставить свой класс реализовывать интерфейс IteratorAggregate
class Test implements IteratorAggregate
{
public PublicVar01 = "Value01";
public PublicVar02 = "Value02";
protected ProtectedVar;
private PrivateVar;
public function getIterator()
{
return new ArrayIterator($this);
}
}
$t = new Test()
foreach ($t as $key => $value)
{
echo $key." = ".$value."<br>";
}
Будет выведено:
PublicVar01 = Value01
PublicVar02 = Value02