En este articulo vamos a ver lo que son las Estructuras de control y sus tipos en PHP. También llamados bifurcaciones si cumple una determinada condición o condiciones. La forma de evaluar una expresión y si es verdadera de ejecutar un bloque de código.

Estructura condicional simple :

if (condición o condiciones) {
 // ejecutar si cumple la condición
}

Ejemplo de Código :

<?php
 // como es TRUE se ejecuta este código
if (true) {
 var_dump('Esto se hace');
 var_dump('Otro');
}
 // como es FALSE No se ejecuta
if (false) {
 var_dump('Esto no se imprime');
}
$polo = 'JS';
if ($polo != 'CSS') {
 var_dump('El polo no es de CSS');
}

Estructura Condicional doble o compuesta :

if (condición o condiciones) {
 // Hace algo si se cumple la condición
} else {
 // Hace algo si NO se cumple la condición
}

Ejemplo de código :

/**
 * Else
 *
 * Es similar al if, la diferencia es que else no requiere una condición
 */

$polo = 'JS';

if ($polo == 'CSS') {
 var_dump('Tengo un polo CSS');
} else {
 var_dump('Oh, el polo es JS');
}

Condicionales tipo if else if :

if ( condición o condiciones ){
 // Realizará algo si se cumple la condición
 } elseif (condición o condiciones) {
 // Realizará algo si no se cumple la primera
 }

Ejemplo de código :

<?php
$polo = 'PHP';

if ($polo == 'CSS') {
 var_dump('Tengo un polo CSS');
} elseif ($polo != 'JS') {
 var_dump('El polo es de JS');
} elseif ($polo !== 'HTML') {
 var_dump('El polo es de HTML');
} else {
 var_dump('Oh, tengo el polo del nuevo curso!');
}

Estructura condicional Múltiple :

switch( condicion ){
case ( condicion ):
// ejecutar si cumple;
break;
case ( otra condicion ):
// ejecutar si cumple;
break;
default:
// ejecutar si no cumple;
}

Ejemplo de código :

<?php

/**
 * La sentencia switch es similar a la sentencia if,
 * excepto que no se usa una condición sino un valor
 * que se desea comparar.
 *
 * Se pueden muchos case.
 *
 * Si no se agrega el break como sentencia final de un case
 * se ejecutan todas las sentencias de los case siguientes.
 *
 * default: caso especial cuando ninguno de los casos
 * anteriores coincide.
 *
 */

$polo = 'PHP';

switch ($polo) {
 case 'CSS':
 var_dump('Tengo un polo CSS');
 break;

case 'JS':
 var_dump('Tengo un polo JS');
 break;

case 'HTML':
 var_dump('Tengo un polo HTML');
 break;

default:
 var_dump('Ninguno de los casos coincide');
}

En 7.0 nos trae nuevos Operadores :

Operadores Lógicos :

  • AND  &&
  • OR  ||
  • ! NEGACIÓN
  • XOR (Solo debe cumplir una expresión No dos)

Ejemplo de código :

<?php

$a = true;
$b = false;
$polo = 'CSS';

/**
 * and
 *
 * Devuelve true si ambos son true
 */
//var_dump(true and true);
//var_dump((5 > 2) and ($polo == 'CSS'));

/**
 * &&
 *
 * Devuelve true si ambos son true
 */
//var_dump(false && true);

/**
 * or
 *
 * Devuelve true si cualquiera de los dos es true
 */
//var_dump(true or true);

/**
 * ||
 *
 * Devuelve true si cualquiera de los dos es true
 */
//var_dump(false || true);

/**
 * !
 *
 * Devuelve true si el operando no es true
 */
//var_dump(!true);

/**
 * xor
 *
 * Devuelve true si uno de los operandos es true, no ambos
 */
var_dump(false xor false);

Operador de nave espacial :

Con el simbolo “<=>”, se emplea para comparar dos expresiones, devuelven lo siguiente :

  • -1 : Si el de la izquierda es menor
  • 0 : Si son iguales
  • 1 : Si el de la izquierda es mayor
<?php
// Número enteros
/*var_dump(1 <=> 1); // 0
var_dump(1 <=> 2); // -1
var_dump(2 <=> 1); // 1*/

// Floats
var_dump(1.5 <=> 1.5); // 0
var_dump(1.5 <=> 2.5); // -1
var_dump(2.5 <=> 1.5); // 1

// strings
var_dump('a' <=> 'a'); // 0
var_dump('a' <=> 'b'); // -1
var_dump('b' <=> 'a'); // 1

Operadores de Comparación :

  • == Igual
  • > Mayor que
  • < Menor que
  • != Diferente (No igual)
  • === Es idéntico a
  • !== No es idéntico a
  • >= Mayor o igual que
  • <= Menor o igual que
  • <> Es diferente de

Operador Ternario :

(condición) ? (verdadero):(falso)

Ejemplo de Código :

<?php
/**
 * Operador ternario
 */
$curso = 'CSS';
$polo = ($curso == 'JS') ? 'Polo JS' : 'Otro polo';
var_dump($polo);

Operador de fusión de null :

<?php

$polo = 'Frase super larga';

/**
 * isset
 *
 * Determinada si una variable está definida y no es null
 */
//var_dump(isset($polo));
/**
 * Si la variable polo está definida y no es null se arroja su valor,
 * de lo contrario arroja "un mensaje".
 */
var_dump(isset($polo) ? $polo : 'Un mensaje');
/**
 * Operador de fusión de null
 */
var_dump($polo ?? 'Un mensaje');