if (1)


ternary operator

A menudo nos encontramos que tenemos que usar un if else en alguna situación que sería un poco incómodo tener que trabajar con if(){} else {} por ejempo si queremos ocultar o mostrar alguna parte de codigo html.

<button <? if($val == 1){ ?> class=”active”<? } ?> > button </button>

es por esto que podemos usar formas simplificadas de los if

<button <?=($val == 1 ? ‘class=”active”’ : ‘’ )?> button </button>

también podemos tener el caso de que queremos mostrar una tabla, que completamos con un for, while, … o cualquier otro bucle, y queremos mostrar los valores. Podemos tener casos de que todas las columnas a completar alguna quede vacía (porque no tiene valor) y decidamos que no queremos columnas vacías, y las queramos rellenar con un 0. Para esto lo común es un number_format, un if, sumarle 0 (chapuza), etc… pero cómo quiero que quede un código entendible y no que una etiqueta html tenga una parrafada de php tengo una solución muy sencilla

$val ?: 0

Este código muestra $val y cuando $val no existe muestra un 0, estamos sustitullendo el siguiente codigo

if($val){ echo $val; } else { $echo 0; }

Tambien podriamos combinar varias operaciones

$valid = true;

$lang = 'french';

$x = $valid ? ($lang === 'french' ? 'oui' : 'yes') : ($lang === 'french' ? 'non' : 'no');

echo $x; // outputs 'oui'