Depuis la version 5.3 de PHP, on peut omettre la partie centrale de l'opérateur ternaire. C'est bien pratique pour définir une valeur par défaut :
<?php
$a = false;
$a = $a ?: 'default';
var_dump($a); // Affiche "default"
$b = 'Foo';
$b = $b ?: 'default';
var_dump($b); // Affiche "Foo"
?>
Par contre, il faut que la variable existe :
<?php
$a = $_POST['a'] ?: 'default'; // Affiche un avertissement "Undefined index: a"
?>
Dans ce cas, on est obligé d'utiliser empty et on doit spécifier la partie centrale :
<?php
$a = empty($_POST['a']) ? 'default' : $_POST['a'];
var_dump($a); // Affiche "default" sans avertissement
?>
Add new comment