2012-08-02 6 views
10

¿Está bien omitir la sentencia else final en un bloque elseif en PHP. ¿Es este código correctoEn PHP, ¿necesita elseif una instrucción else final?

if (condition): 
    // code 
elseif (othercondition): 
    // more code 
endif; 

o debería tener más al final?

if (condition): 
    // code 
elseif (othercondition): 
    // more code 
else 
    // more code 
endif; 

Estoy seguro de que debe ser pero no puedo confirmarlo en ninguna parte. Editar - Lo probé y funciona, pero solo quiero estar seguro.

+3

Sí, está bien. – wanovak

+2

Tienes código allí - pruébalo. –

+2

Sí, es opcional – Oussama

Respuesta

12

si no necesita una final else -bloquea, no escriba una. no tiene sentido tener un bloque de código (que posiblemente contenga solo un this is useless -comentario) que no es necesario.

+1

+1 Una respuesta simple a una pregunta simple. – Asaph

4

Mientras respuesta de @ oezi es 100% correcto, También me gustaría añadir que, con respecto a las mejores prácticas , la condición else debe usarse en todos los casos. Sin embargo, esto no significa que tenga que usar un bloque else literalmente, ya que puede lograr lo mismo lógicamente al poner su "código de otro" antes del if. Por ejemplo:

$foo = 'baz'; 

if (...) { 
    $foo = 'foo'; 
} else if (...) { 
    $foo = 'bar'; 
} 

... es funcionalmente equivalente a:

if (...) { 
    $foo = 'foo'; 
} else if (...) { 
    $foo = 'bar'; 
} else { 
    $foo = 'baz'; 
} 

Yo diría que el uso de else es más clara al leer el código, pero de cualquier manera está bien. Solo recuerde que omitir el tercer caso por completo es una causa común de errores (y en algunos casos, incluso de agujeros de seguridad).

+0

Gracias, esa es la razón por la que hice la pregunta, no la había visto tan seguido, así que pensé que había una razón. – byronyasgur

Cuestiones relacionadas