Por que PHP tem dois “não é igual a” operadores (! = E <>) [duplicado]
-
12-09-2019 - |
Pergunta
Esta questão já tem uma resposta aqui:
Aconteceu de eu tropecei em cima de um pedaço de código PHP e pude ver autor usou <>
para fazer um não é igual a comparação:
if ($variable <> "") {
echo "Hello, I am having some value";
}
Eu tenho !=
sempre usados:
if ($variable != "") {
echo "Hello, I am having some value";
}
Existem quaisquer circunstâncias especiais, quando devo usar <>
sobre !=
?
Solução
Eu acho que o operador <> foi implementado em PHP porque ele está presente em alguns outros idiomas (SQL, por exemplo)
Ambos <> e = média quase exatamente o mesmo: a única diferença que eu consegui encontrar está relacionado com sua precedência: veja operador Precedência : eles não estão na mesma linha ^^ (o que significa que há uma diferença, afinal, entre os dois)
Embora, eu tenho que admitir que eu nunca vi o <> usado em PHP.
Note que as pessoas geralmente usam =!; você provavelmente deveria fazer o mesmo:. ele vai fazer seu código mais fácil de entender
E, btw, você também tem a == operador, que faz comparação tipo também!; mas não há nenhum operador << >> ou qualquer coisa assim ^^
Como referência: Operadores de Comparação
Outras dicas
Eu acredito que quando o PHP foi desenvolvido pela primeira vez, um dos objetivos do projeto era fazer com que a língua flexível, que é por isso que eles trouxeram em cada tipo de loop e cada tipo de operador que você poderia pensar.
<>
é ligeiramente diferente do que !=
em termos de precedência categoria, mas os operadores que vêm entre eles significa que não há qualquer diferença prática.
Boa pergunta. Eles são os mesmos, para além de uma sutil diferença: <> tem maior precedência do que! =
Por tê-los? Apenas para fazer as coisas funcionarem como você poderia esperar. PHP é uma miscelânea de idéias emprestadas, e onde um programador C pode preferir $foo != $bar
, alguém com um fundo BASIC pode encontrar $foo <> $bar
mais fácil no olho. Cada um na sua!
Eles têm muito próximo, mas ligeiramente precedências diferentes , mas eu não posso ver qualquer momento que seria útil.