2009-08-11 18 views
8

simplemente me pasó a tropezado con un trozo de código php y pude ver el autor utiliza <> hacer una no es igual a la comparación:¿Por qué PHP tiene dos "no es igual a" operadores (= y <>!)

if ($variable <> "") { 
    echo "Hello, I am having some value"; 
} 

siempre he utilizado !=:

if ($variable != "") { 
    echo "Hello, I am having some value"; 
} 

¿hay alguna circunstancia especial, cuando debería utilizar <> sobre !=?

+1

No sabía que se podía hacer <> en php – dassouki

Respuesta

3

supongo que la <> operador se ha implementado en PHP, ya que está presente en algunos otros idiomas (SQL, por ejemplo)

Tanto <> y = media casi exactamente el mismo: el única diferencia que he conseguido encontrar se relaciona con su precedencia: ver Operator Precedence: no están en la misma línea ^^ (lo que significa que hay una diferencia, después de todo, entre los dos)

Aunque, tengo que admitir que tengo n visto alguna vez el <> utilizado en PHP.

Tenga en cuenta que las personas generalmente usan! =; probablemente debas hacer lo mismo: hará que tu código sea más fácil de entender.

Y, btw, también tiene el operador! ==, que también hace una comparación; pero no hay < < >> operador o algo por el estilo ^^


Como referencia: Comparison Operators

+0

Estoy de acuerdo con usted en cuanto a hacer que el código sea más fácil de entender. – TigerTiger

+0

En realidad, tengo que confesar: ni siquiera recordé que había un <> operador en PHP ^^ Incluso probé tu código para asegurarme de que funcionaba ^^ ¡Verlo en algún código fuente definitivamente sería extraño! (Supongo que lo había visto en el manual hace mucho tiempo ... Pero ni siquiera recuerdo ^^) –

+1

Ellos *** son *** [en la misma línea] (http://php.net/ manual/es/language.operators.precedence.php) (puede ser que tengan diferente precedencia cuando respondas). –

4

Creo que cuando PHP se desarrolló por primera vez, uno de los objetivos del diseño era flexibilizar el lenguaje, razón por la cual incorporaban todos los tipos de bucles y todos los tipos de operadores posibles.

<> es ligeramente diferente de !=in terms of precedence categoría, pero los operadores que vienen entre ellos significa que no hay ninguna diferencia práctica en absoluto.

3

Buena pregunta. Son lo mismo, aparte de una diferencia sutil: <> has higher precedence than !=

¿Por qué tenerlos? Solo para que las cosas funcionen de la forma que podrías esperar. PHP es una mezcolanza de ideas prestadas, y donde un programador en C podría preferir $foo != $bar, alguien con un fondo BÁSICO podría encontrar $foo <> $bar más fácil para el ojo. ¡Cada uno por su cuenta!

+0

ah veo .. al menos hay "alguna "diferencia" ;-) – TigerTiger

Cuestiones relacionadas