PHP Opérateur Ternaire (? :)


Exemple

L'opérateur ternaire peut être considéré comme une instruction en ligne if . Il se compose de trois parties. L' operator et deux résultats. La syntaxe est la suivante:

$value = <operator> ? <true value> : <false value>

Si l' operator est évalué comme true , la valeur du premier bloc sera renvoyée ( <true value> ), sinon la valeur du deuxième bloc sera renvoyée ( <false value> ). Comme nous définissons $value sur le résultat de notre opérateur ternaire, il stockera la valeur renvoyée.

Exemple:

$action = empty($_POST['action']) ? 'default' : $_POST['action'];

$action contient la chaîne 'default' si elle est empty($_POST['action']) évaluée à true. Sinon, il contiendrait la valeur de $_POST['action'] .

L'expression (expr1) ? (expr2) : (expr3) évaluée à expr2 si expr1 évaluée à true et expr3 si expr1 évaluée à false .

Il est possible de laisser de côté la partie centrale de l'opérateur ternaire. Expression expr1 ?: expr3 renvoie expr1 si expr1 évaluée à TRUE et expr3 sinon. ?: est souvent appelé opérateur Elvis .

Cela se comporte comme l' opérateur Null Coalescing ?? , sauf que ?? nécessite l'opérande gauche pour être exactement null alors ?: tente de résoudre l'opérande gauche dans un booléen et vérifier si elle décide de booléen false .

Exemple:

function setWidth(int $width = 0){
    $_SESSION["width"] = $width ?: getDefaultWidth();
}

Dans cet exemple, setWidth accepte un paramètre de largeur, ou 0 par défaut, pour modifier la valeur de session de largeur. Si $width est getDefaultWidth() 0 (si $width n'est pas fourni), ce qui se traduira par une valeur booléenne false, la valeur de getDefaultWidth() est utilisée à la place. La fonction getDefaultWidth() ne sera pas appelée si $width ne s'est pas résolu en booléen false.

Reportez-vous à la section Types pour plus d'informations sur la conversion de variables en valeurs booléennes.