Bueno, yo comprobaria primero el tipo de variable luego ejecuto el bucle, tambien si necesito recorrer un objeto, me aseguro de que asi sea.
Haria algo así pero pues como dice JairLizcano necesitas saber que valores son y claro, el resto de codigo para ver si se puede simplificar..
Código PHP:
Ver originalfunction recorro($matriz, $directorioPadre) {
// Comprobamos si es una matriz u objecto para ejecutar el bucle de recorrido, si no imprime
// Aseguramos de que la matriz se convierta a objeto
$matriz = (object) $matriz;
// Recorremos con la seguridad de que es un objecto lo que vamos a recorrer
foreach ($matriz as $key => $value) {
$nombre = $value->getNombre();
if ($nombre == $directorioPadre) {
$encontro = TRUE;
$a['encontro'] = $encontro;
$a['tipoElemento'] = $value->getTipoElemento();
$a['key'] = $key;
$a['arreglo'] = $value;
$continuar = FALSE;
return $a; //retorna el objeto
} else {
if ($tipoObjeto == 'Directorio') {
//tiene subdirectorios
$listaElementos = $value->getListaElementos();
$numElementos = count($listaElementos); if ($numElementos > 0) {
//si tiene elementos lo debe recorrer
$this->recorro($listaElementos, $directorioPadre);
}
}
}
}
} else {
$a = 'key:' . $value;
echo $a;
echo '<br>';
}
}
!Claro! es solo como yo lo haria en cuestion a estructura, desconocemos su funcionalidad.
Saludos...