Иногда в программировании стоит задача пройтись по публичным свойствами класса, чтобы либо их посчитать либо просто использовать в другой части программы. Например:
class A {
public $e=1;
public $c=2;
public $f=3;
}
$f = new A;
foreach ($f as $a => $b) {
echo $a.'->'.$b.'<br>';
}
Если мы добавим сюда защищенное свойство, то проитерировать (пройтись) защищенные свойства итератору уже не получится и просто так их напечатать на экран: