La capacidad de implementar lógica condicional es el requisito fundamental de cualquier lenguaje de programación (incluido PHP). PHP tiene tres palabras clave (también llamadas construcciones de lenguaje): if, elseif y else, que se utilizan para tomar decisiones basadas en las diferentes condiciones.

La palabra clave if es la construcción básica para la ejecución condicional de fragmentos de código. La mayoría de las veces, la palabra clave if se usa junto con la palabra clave else, aunque no siempre es obligatorio.

Si desea ejecutar algún código si una condición es verdadera y otro código si la condición es falsa, use el «if…. else».

Sintaxis

El uso y la sintaxis de la sentencia if en PHP es similar a la del lenguaje C. Aquí está la sintaxis de la declaración if en PHP:

if (expression)
   code to be executed if expression is true;
else
   code to be executed if expression is false;

La instrucción if siempre va seguida de una expresión booleana.

  • PHP ejecutará la sentencia que sigue a la expresión booleana si se evalúa como verdadera.
  • Si la expresión booleana se evalúa como falsa, se omite la instrucción.
  • Si el algoritmo necesita ejecutar otra instrucción cuando la expresión es falsa, se escribe después de la palabra clave else.

Ejemplo

Aquí hay un código PHP simple que demuestra el uso de las declaraciones if else. Hay dos variables$a y $b. El código identifica cuál de ellos es más grande.

<?php
   $a=10;
   $b=20;
   if ($a > $b)
      echo "a is bigger than b";
   else
      echo "a is not bigger than b";
?>

Cuando se ejecuta el código anterior, muestra el siguiente resultado:

a is not bigger than b

Intercambie los valores de «a» y «b» y vuelva a ejecutar. Ahora, obtendrá el siguiente resultado:

a is bigger than b

Ejemplo

El siguiente ejemplo generará «¡Que tengas un buen fin de semana!» si el día actual es viernes, de lo contrario, generará «¡Que tengas un buen día!»

<?php
   $d = date("D");

   if ($d == "Fri")
      echo "Have a nice weekend!"; 
   else
      echo "Have a nice day!"; 
?>

Producirá el siguiente resultado:

Have a nice weekend!

Uso de endif en PHP

El código PHP suele estar entremezclado con el script HTML. Podemos insertar código HTML en la parte if, así como en la parte else en el código PHP. PHP ofrece una sintaxis alternativa para las sentencias if y else. Cambie la llave de apertura a dos puntos (:) y la llave de cierre a endif; de modo que se pueda agregar un bloque HTML a la parte if y else.

<?php
   $d = date("D");

   if ($d == "Fri"): ?>
      <h2>Have a nice weekend!</h2>

   <?php else: ?>
      <h2>Have a nice day!</h2>
<?php endif ?>

Asegúrese de que el script anterior esté en la raíz del documento del servidor PHP. Visite la URL http://localhost/hello.php. La siguiente salida debe mostrarse en el navegador, si el día actual no es un viernes:

Have a nice day!

Uso de elseif en PHP

Si desea ejecutar algún código si una de las varias condiciones es verdadera, utilice la instrucción elseif. La construcción del lenguaje elseif en PHP es una combinación de if y else.

  • De manera similar a else, especifica una instrucción alternativa que se ejecutará en caso de que la expresión if original se evalúe como falsa.
  • Sin embargo, a diferencia de lo demás, ejecutará esa expresión alternativa solo si la expresión condicional elseif se evalúa como verdadera.
if (expr1)
   code to be executed if expr1 is true;
elseif (expr2)
   code to be executed if expr2 is true;
else
   code to be executed if expr2 is false;

Ejemplo

Modifiquemos el código anterior para mostrar un mensaje diferente el domingo, el viernes y otros días.

<?php
   $d = date("D");
   if ($d == "Fri")
      echo "<h3>Have a nice weekend!</h3>";

   elseif ($d == "Sun")
      echo "<h3>Have a nice Sunday!</h3>"; 

   else
      echo "<h3>Have a nice day!</h3>"; 
?>

Los domingos, el navegador mostrará el siguiente resultado:

Have a nice Sunday!

Ejemplo

A continuación, se muestra otro ejemplo para mostrar el uso de las sentencias if–elselif–else–else−

<?php
   $x=13;
   if ($x%2==0) {
      if ($x%3==0) 
         echo "<h3>$x is divisible by 2 and 3</h3>";
      else
         echo "<h3>$x is divisible by 2 but not divisible by 3</h3>";
   }

   elseif ($x%3==0)
      echo "<h3>$x is divisible by 3 but not divisible by 2</h3>"; 

   else
      echo "<h3>$x is not divisible by 3 and not divisible by 2</h3>"; 
?>

El código anterior también usa instrucciones anidadas.

Para los valores de x como 13, 12 y 10, la salida será la siguiente:

13 is not divisible by 3 and not divisible by 2
12 is divisible by 2 and 3
10 is divisible by 2 but not divisible by 3