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 ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs