La idea es implementar Iterator para(valga la redundancia) iterar directamente sobre los childrens de la clase Node, algo así:
Código PHP:
Ver original$node = new Node('Root');
$node->addChild(new Node('Child 1'));
$node->addChild(new Node('Child 2'));
$node->addChild(new Node('Child 3'));
foreach($node as child){
print_r($child);//child 1, child 2, child 3 }
y Countable para saber la cantidad de childrens aplicando count directamente al objeto:
Código PHP:
Ver original$node = new Node('Root');
$node->addChild(new Node('Child 1'));
$node->addChild(new Node('Child 2'));
$node->addChild(new Node('Child 3'));
Te sugiero que leas sobre
SPL
Agregado:
Otra opción es implementar
RecursiveIterator para en vez de recorrer solamente los hijos directos de un nodo, puedas recorrer toda la descendencia.
Saludos.