Melhor resposta
Absolutamente!
Em PHP, Javascript ou qualquer outra linguagem que ofereça verificações de equivalência soltas e estritas, é melhor usar a versão estrita, a menos que você tenha um motivo convincente para fazer o contrário . (Na verdade, alguns desenvolvedores de software insistem em que você não use verificações de igualdade vagas!) Existem várias razões para isso.
Em primeiro lugar, usar a equivalência flexível pode levar a uma classe inteira de defeitos isso pode ser evitado com equivalência estrita. Embora o PHP seja particularmente conhecido por ser “útil”, a maioria das linguagens com tipagem dinâmica são tolerantes quando se trata de conversão entre tipos. Os dados que passam pela equivalência solta podem se comportar bem em muitos casos e ir muito mais fundo no código antes de disparar um erro ou causar um efeito colateral inesperado. As verificações estritas de equivalência, por sua vez, são mais semelhantes aos tipos de verificações que ocorrem em linguagens tipadas estaticamente; é muito menos provável que os dados em um formato incorreto fiquem descontrolados.
Um problema relacionado é como a equivalência frouxa torna o código mais difícil de raciocinar. Se você usar a equivalência estrita, poderá fazer muitas suposições sobre os dados que passam na verificação. O mesmo não é verdade se você usar a equivalência livre. Considere os dois exemplos a seguir.
// Example #1: strict
if ( $i === 1 ) {
doThing( $i );
}
// Example #2: loose
if ( $i == 1 ) {
doThing( $i );
}
No primeiro exemplo, podemos assumir que a função “doThing” está sendo chamada com um valor numérico e precisamos apenas considerar como essa função trataria os números.
No segundo exemplo, porém, “doThing” pode ser chamado com uma variedade de tipos, incluindo strings ou valores booleanos. Ao ler a função “doThing”, você precisa considerar como cada tipo pode ser tratado, incluindo todas as várias regras (e às vezes sem sentido) relacionadas às conversões de tipo implícitas. Isso é muito para controlar na sua cabeça!
Além disso, ao usar a equivalência livre, você não está sendo explícito. Isso não apenas contribui para a dificuldade de raciocínio por meio da lógica, mas também falha em capturar os requisitos reais que a lógica supostamente representa. Com o exemplo # 2 acima, não há como saber se o programador original esperava valores numéricos, valores de string, valores booleanos ou alguma combinação dos mesmos. Isso torna o código uma dor de cabeça para manter.
Por último, embora a conversão implícita de tipo possa ser conveniente, há pouca necessidade disso em um ambiente profissional. Você sempre pode definir padrões razoáveis ou forçar manualmente os dados para o tipo apropriado. Isso pode exigir mais código e mais esforço, mas também aumenta muito a confiabilidade do seu código.
Resposta
Se você sabe que dois valores devem ter o mesmo tipo, sim, use Strict ( ===) excessivamente solto (==). Strict tem melhor desempenho porque não precisa fazer a conversão de tipo como o loose.
Por exemplo 1 == “1” retorna verdadeiro porque essa string é convertida em um número para verificar a igualdade
Enquanto 1 === “1” retorna falso
Igualdade estrita basicamente vai “não é o mesmo tipo? FALSE “
Espero que isso ajude