El problema de la opcionalidad de las llaves en las condiciones en PHP
A pesar de que PHP permite las abreviaturas mostradas arriba sin llaves, en general no recomiendo hacerlo, ya que esto es un foco de errores difíciles de detectar.
Supongamos por ejemplo que existe el siguiente código:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Supongamos ahora que decidimos en el caso de que se
cumpla la condición, hacer también un segundo
echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Sin embargo, sin llaves dentro de la condición solo se encuentra la primera impresión, es decir, la primera impresión se ejecutará si la condición es verdadera, y la segunda, siempre.
En realidad, nuestro código es equivalente a este:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // esta línea quedó fuera de la condición
?>
Y nosotros querríamos este código:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // esta línea está dentro de la condición
}
?>
Precisamente por esto se recomienda siempre colocar las llaves, para no caer en este tipo de errores.
Sin ejecutar el código, determine qué se imprimirá en pantalla:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Sin ejecutar el código, determine qué se imprimirá en pantalla:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Sin ejecutar el código, determine qué se imprimirá en pantalla:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>