2011-07-09 21 views
6

¿Existe una diferencia entre estas dos afirmaciones:variable antes o después de valor en la instrucción IF

if ($a == 'hello') { ... }

y

if ('hello' == $a) { ... }

me he dado cuenta de aplicaciones como Wordpress tienden a utilizar el este último, mientras que yo suelo usar el primero.

Parece que recuerdo haber leído algo hace un tiempo dando justificación para esto último, pero no recuerdo el razonamiento detrás de esto.

Respuesta

9

No hay diferencia. Se utiliza de manera que se emite un error en caso de que accidentalmente realiza una asignación en lugar de una comparación:

if('hello' = $a) 

if($a = 'hello') sería asignar a la variable y no generará un error.

También podría utilizarse para mostrar explícitamente que si usted tiene una misión en un comunicado por if, que realmente quiere tener allí y no es un error (consistencia).

+3

Esto lo resume bastante bien, aunque solo me gustaría mencionar que, si bien este estilo puede evitar errores, a veces hace que las cláusulas if sean más difíciles de leer. –

+0

¡Pensé así, gracias! – steveneaston

+0

Gracias por la explicación. Por cierto, odio ese estilo "antinatural". – Nick

2

El justifikation de este último es que si por error, escribe = en lugar de == (asignación en lugar de comparación) obtendrá error del compilador (no se puede asignar a constante).

Cuestiones relacionadas