Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Operador de comparaçao

Olá,

No vídeo, o professor utilizou a condição $quantidaneNotas > 0, já nos exercícios foi mostrado a condição como $quantidaneNotas !== 0.

Eu entendo que o operador === ou !=== compara não só o valor, como o tipo da variável, devido o PHP fazer conversões de valores no momento da execução.

Entendo também que os dois códigos funcionam nesse caso, apesar que os operadores de diferença e maior terem funções diferentes, nesse caso resolve.

Mas, surge a dúvida: Existe uma boa prática ou regra que sugira que sempre utilizemos operadores de "igualdade idêntico" se possível?

Ou seja, por boa prática, não utilizar de conversões implícitas vindas do PHP.

Não sei se me fiz ser entendido, espero que sim, e que possam me ajudar.

1 resposta
solução!

Olá Caique, Tudo bem?

Por padrão não há uma regra exata, mas é interessante sempre que possível utilizar os operadores de identidade === e !==, isso se deve ao fato de que em muitos momentos se você usar os operadores de igualdade você pode obter resultados inesperados, por exemplo:

  • 1 == true é verdadeiro
  • 0 == false é verdadeiro
  • array() == false é verdadeiro
  • array() == null é verdadeiro

Entre outros, assim como conversões não esperadas, por exemplo ao comparar uma string que começa com 0 com uma string que não começa com 0:

  • "0123" == "123" é verdadeiro.
  • "0123" === "123" é falso.

Algumas IDEs como o PHPStorm quando habilitadas com plugins como o Php Inspections (EA Extended) vão recomendar que você use o operador de identidade ao invés do de igualdade.

Isso não quer dizer que você não possa usar o de igualdade, mas que deve usa-lo apenas quando precisa dele (ou seja, quando se sabe que o tipo é diferente ou quando se espera uma comparação mais solta).

Uma tabela que demonstra alguns tipos de comparações entre estes dois estilos pode ser encontrada aqui -> https://www.php.net/manual/pt_BR/types.comparisons.php