Eu estou montando um array de objetos para montar o menu da minha aplicação.
No momento do erro este array está desta forma:
$arrayMenu =
Array( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 1 [descricao] => Home [tela] => 1 [icone] => fa-home [controlador] => Inicio [menu_mp] => [descricao_mp] => ) [1] => stdClass Object ( [tipo_menu] => 1 [menu] => 2 [descricao] => Agenda [tela] => 31 [icone] => fa-calendar [controlador] => Agenda [menu_mp] => [descricao_mp] => ) [2] => stdClass Object ( [menu] => 3 [descricao] => Cadastro [tela] => [icone] => [controlador] => [sub_menus] => Array ( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 4 [descricao] => Tipos de Usuários [tela] => 12 [icone] => fa-users [controlador] => TiposUsuarios [menu_mp] => 3 [descricao_mp] => Cadastro ) [1] => stdClass Object ( [tipo_menu] => 1 [menu] => 5 [descricao] => Usuários [tela] => 2 [icone] => fa-user [controlador] => Usuarios [menu_mp] => 3 [descricao_mp] => Cadastro ) [2] => stdClass Object ( [tipo_menu] => 1 [menu] => 6 [descricao] => Tipos de Menus [tela] => 4 [icone] => fa-list [controlador] => TiposMenus [menu_mp] => 3 [descricao_mp] => Cadastro ) [3] => stdClass Object ( [tipo_menu] => 1 [menu] => 12 [descricao] => Telas [tela] => 3 [icone] => [controlador] => Telas [menu_mp] => 3 [descricao_mp] => Cadastro ) [4] => stdClass Object ( [menu] => 13 [descricao] => Teste [tela] => [icone] => [controlador] => [sub_menus] => Array ( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 15 [descricao] => Teste 3 [tela] => 7 [icone] => fa-camera [controlador] => Teste [menu_mp] => 13 [descricao_mp] => Teste ) ) ) ) ))
Rodo a função abaixo para encontrar o menu 13 e acrescentar mais submenus nele, porém não retorna corretamente, acaba imprimindo a linha com o comando
echo '<br /> return false <br />';
Função:
function buscaMenu( array $arrayMenu, $codMenu ){
$retorno = false;
foreach ( $arrayMenu as $menu ){
if( $menu->menu == $codMenu ){
$retorno = $menu;
return $retorno;
}
if( $menu->sub_menus ){
buscaMenu( $menu->sub_menus, $codMenu );
}
}
echo '<br /> return false <br />';
}
Chamada da função:
$menuPai = buscaMenu( $arrayMenu , 13 );
Porque, dá problema?