¿Que os contaré?

Este post viene a tratar el tema de los ifs simplificados, ¿Que es?. Una forma más comoda de escribir código PHP, pero lo que me interesa tratar con vosotros son el if coelspaccing (que nombre más feo) que vienieron en PHP 7.0, aunque nos encontramos en PHP 7.4, es algo que me interesó ahora. En este post no voy a tratar el tema de los if, ese lo traté en el post sobre refactorizar con if, en PhpStorm, el cual os aconsejo que leáis, me quedó muy bien.

if simpllificado

Por lo genera los if tienen la estructura

if(condicion){
    // Si se cumple
}else{
    // Si no se cumple
}

En los if simplificados, nos pueden ayudar de mucho para ahorrar lineas de código, podemoso abreviar 5 en 1 linea solamente. Por ejemplo :

// Sin simplificar
$flag = true;
$valor = 0;
if($flag){
    $valor = "SI";
}else{
    $valor = "NO"
}
// Simplificado
$flag = true;
$valor = ($flag)?"SI":"NO";

Como podeis ver acorta mucho las lineas de código. Por otra parte podemos ejecutar distintas acciones con ellos, un ejemplo de esto sería :

isset($arrayMonedas['2c'])?$monedasDosCentimos+=$arrayMonedas['2c']:null;

If con el operador coelspaccing

Este if coelspaccing en php 7.0, tiene le operador ?? que nos sirve para usstituir el código.

// Antes de php 7.0
$animal = isset($_POST['animal'])?$_POST['animal']:null;
// Después de php 7.0
$animal = $_POST['animal']??null;
// Se pueden concatenar
$animal = $_POST['animal']??$_GET['animal']??null;
// Usando refactorización
$animal = $_REQUEST['animal']??null;

En resumen

Como podemos ver tiene mucha fuerza el poder abreviar if y nos amorta mucho. SI lo salemos utilizar ya que nos encontramos en ocasiones if simplificacados concatenados con otros ifs que no es eficiente cara el futuro programador que tenga que mantener ese código. Avanzando un paso más hacia la creación de monolitos inmantenibles.

Y como todos sabemos nuestro objetivo es hacer un código limpio y no ofuscarlo. ¿A que sí?

25-05-2020