PHP: Condicionales if, else y elseif

Hola gente,

Estaba buscando el foro indicado y me dijeron que por feedback el mejor lugar sería este para mis dudas.

Resulta que estoy intentando ponerme las pilas con php y en los apuntes que tengo he encontrado lo siguiente:

<?php
if ($a > $b) { print "a es mayor que b"; }
elseif ($a == $b) { print "a es igual que b"; }
else { print "a es mayor que b"; }
?>

Pero creo que la condición else, el print está mal, ¿no? Yo podría:

print "a es menor que b";

¿Me podeis echar un cable?

Gracias y saludos.
Exacto, el else sería a menor que b.
Ok,

Gracias, era lo que me suponía.

Por otra parte, en un bucle do ... while, si escribo condicionales dentro if, se debe escribir esto?:

<?php
do {
if ($i < 5) {
print "i no es lo suficientemente grande";
}
$i *= $factor;
if ($i < $minimum_limit) {
}
print "i es correcto";
/* procesa i */
} while(0);
?>

o debo, por el contrario añadir break al final de cada if para que quede tal y como esto:

<?php
do {
if ($i < 5) {
print "i no es lo suficientemente grande";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
print "i es correcto";
/* procesa i */
} while(0);
?>


Perdonad, pero es que llevo mucho tiempo oxidándo mi programación
http://es.php.net/manual/es/control-structures.if.php
http://es.php.net/break

El break se usa para salir de determinadas estructuras, ahí lo que hace es salir del do_while en determinadas condiciones. Pero porque un if vaya anidado dentro de un do_while no has de usar break.

En el primer caso tienes un bucle infinito con errores (una estructura condicional sin ninguna instrucción), en el segundo caso se itera excepto cuando se cumplen las condiciones, que se sale del do_while, y puedes llegar a un bucle infinito dependiendo de los valores de $i, $factor y $minimum_limit.

Por cierto, usa la etiqueta code para el código, si no se pierde legibilidad.
y recuerda, el tabulador no es tu enemigo xDDD

lo agradeceras como programador y lo agradecerá cualquier otro programador que vaya a leer tu codigo ;)
4 respuestas