¿Qué hace el operador ?: (Elvis) en PHP y cómo funciona?
¡Hola a todos! Empecé a estudiar PHP recientemente y me topé con un operador extraño `?:`. En un proyecto vi este código:
```php
$name = $_GET['name'] ?: 'guest';
```
Entiendo el operador ternario normal `? :`, pero aquí solo hay un signo de interrogación y dos puntos. No hay ninguna condición antes de `?`. ¿Cómo funciona esto? ¿Qué es el "operador Elvis"?
Intenté jugar con él localmente:
```php
$value = 0;
$result = $value ?: 'default value';
echo $result; // muestra 'default value'
```
¿Por qué para `0` funcionó como false? ¿Y qué pasa si la variable no está definida? ¿Dará un error?
Explíquenme, por favor, para principiante: ¿en qué casos es mejor usar `?:` en lugar del operador ternario normal o `??` (null coalescing)? ¿Cuándo debería usarlo y cuándo es mejor evitarlo? ¡Gracias de antemano!
<<>>
Qué es el operador Elvis (?:)
El operador ?: (Elvis operator) es una forma abreviada del operador ternario. Apareció en PHP 5.3.