Missing punto y coma después debreak
Es bastante interesante saber por qué su programa se comporta de la manera que lo hace.
La sintaxis general de break
en PHP es:
break Expression;
La expresión es opcional, pero si está presente su valor indica cuántas anidada estructuras de cerramiento son para romperse fuera de.
break 0;
y break 1;
son los mismos que break;
Su código es equivalente a
if($a==3)
break print"$a ";
Ahora la función print
en PHP siempre vuelven 1
. Por lo tanto es equivalente a
if($a==3)
break 1;
así que cuando $a
es 3
imprime su valor y descanso.
Es aconsejable utilizar llaves para encerrar el cuerpo de un condicional o un bucle, incluso si el cuerpo tiene una sola declaración. En este caso encierra el cuerpo if
entre llaves:
if($a==3) {
break
}
print"$a ";
habría dado un error de sintaxis: PHP espera una ;
pero encuentra una }
Todo lo anterior se aplica a la PHP continue
también. Así que el programa
for($a=0;$a<10;++$a)
{
if($a==3)
continue
print"$a ";
}
también imprime 3
por una razón similar.
+1 para usar llaves. –
@bmb: + para las llaves. Lo he agregado a mi respuesta. – codaddict