Fazer o encadeamento de condições desta forma:
if(condicao){}
elseif(condicao){}
else{}
Ao invés de fazer :
if(condicao)
return;
if(condicao)
return;
if(condicao)
return;
é menos performático? Por que?
Fazer o encadeamento de condições desta forma:
if(condicao){}
elseif(condicao){}
else{}
Ao invés de fazer :
if(condicao)
return;
if(condicao)
return;
if(condicao)
return;
é menos performático? Por que?
Fala Pablo, blz?
Dentro de uma estrutura de if
e elseif
e else
o interpretador de código irá executar cada condição até encontrar uma que a satisfaça. Caso o primeiro if
seja executado, o interpretador não irá efetuar a comparação no elseif
e nem a execução do else
. Logo, haveria menos processamento nesse caso.
No caso de uma estrutura com apenas if
, todas as comparações serão executadas, mesmo que o primeiro if
já satisfaça a condição.
No vídeo que eu vi, sobre classes PHP o instrutor recomendou um artigo, no qual fala que
If(condição){
Return;
}
É mais perfomatico, que usar encadeamento e eu não consigo entender como isso seria possível, eu não entendo muito de compiladores mas creio que nem a nível de compilação isso se traduza em uma maior performance.
Mas pelo que você disse, um if encadeado é igualmente, se não mais performatico
Bom, tem um detalhe que eu nao me atentei, esse return
dentro dos if
s pode ter um efeito igual do if
encadeado com else
, pois se caso cair em um if
ele pararia a execução da mesma forma.
Mas no geral, eu acho que depende muito da situação. Na maioria dos casos dá para resolver as coisas só com um if
:
if (condição) {
return true;
}
return false;
Nesse caso acima, conseguimos escrever uma condição dupla sem elseif
e else
com o processamento apenas de um if
.
Mas há casos que é melhor usar elseif
, eu acho que é muito genérico, vai depender muito do que vc precisa na hora. É sempre bom saber usar as duas coisas no final das contas.