L'opérateur ternaire en PHP 5.3

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
?>

Etiquettes:

Add new comment