Avatar ·

Que fait l'opérateur ?: (Elvis) en PHP et comment fonctionne-t-il ?

Bonjour à tous ! J'ai commencé à étudier PHP récemment et je suis tombé sur un opérateur étrange `?:`. Dans un projet, j'ai vu ce code : ```php $name = $_GET['name'] ?: 'гость'; ``` Je comprends l'opérateur ternaire classique `? :`, mais ici il n'y a qu'un seul point d'interrogation et deux-points. Il n'y a pas de condition avant `?`. Comment ça marche ? Qu'est-ce que "l'opérateur Elvis" ? J'ai essayé de jouer avec localement : ```php $value = 0; $result = $value ?: 'valeur par défaut'; echo $result; // affiche 'valeur par défaut' ``` Pourquoi pour `0` cela a-t-il fonctionné comme false ? Et que se passe-t-il si la variable n'est pas définie ? Cela générera-t-il une erreur ? Expliquez-moi, s'il vous plaît, pour un débutant : dans quels cas est-il préférable d'utiliser `?:` plutôt que l'opérateur ternaire classique ou `??` (null coalescing) ? Quand faut-il l'utiliser, et quand vaut-il mieux ne pas le faire ?