Avatar ·

¿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.