1
resposta

Case When vs Function

Sobre fazer as comparações via function (if....else....) seria mais performatico usar a function com um if else ou fazer por case when no select normal mesmo ? Ele usaria menos memoria, cpu ou o comportamento seria parecido ?

1 resposta

Bom dia Flávio,

Em suma, a estrutura de controlo switch(case/when) é um if para operar sobre a mesma variável ou expressão de entrada. Não existe propriamente uma comparação entre os dois para apurar a sua performance dado o objetivo de cada um ser distinto. O que existe é o uso correto da estrutura de controlo mais adequada para o nosso objetivo.

switch Devemos utilizar quando queremos comparar a mesma variável ou expressão com várias opções: A instrução switch é similar a uma série de instruções IF sobre a mesma expressão. Em muitas ocasiões, você pode querer comparar a mesma variável (ou expressão) com muitos valores diferentes, executando uma peça diferente do código dependendo de qual valor ele se encaixar. Este é exatamente o que a instrução switch faz.

switch($a) { 
                    case 1: {
                    echo 'Variável A é igual a 1';
                    break;
                                  }
                    case 2: {
                    echo 'Variável A é igual a 2';
                    break;
                                  }
                    default: {
                    echo 'A Variável A não é igual a 1 nem igual a 2';
                                   }
                    }

if Devemos utilizar quando queremos realizar uma série de verificações distintas. A construção if é uma das características mais importantes de muitas línguas, PHP inclusive. Ela permite a execução condicional de fragmentos de código.

if ($a > $b) 
{
    echo "A é maior que B";
}
else if ($a < $b) 
{
    echo "A é menor que B";
}
else if ($a == $b) 
{
    echo "A é igual a B";
}
else 
{
    echo "A é alguma coisa não comparável com B";
}

Espero ter ajudado.

Abraço!!!