Avatar ·

Was macht der Operator ?: (Elvis) in PHP und wie funktioniert er?

Hallo zusammen! Ich habe vor kurzem angefangen, PHP zu lernen, und bin auf einen seltsamen Operator `?:` gestoßen. In einem Projekt habe ich diesen Code gesehen:\n\n```php\n$name = $_GET['name'] ?: 'Gast';\n```\n\nIch verstehe den normalen ternären Operator `? :`, aber hier gibt es nur ein Fragezeichen und einen Doppelpunkt. Keine Bedingung vor `?`. Wie funktioniert das? Was ist der "Elvis-Operator"?\n\nIch habe versucht, lokal damit herumzuspielen:\n\n```php\n$value = 0;\n$result = $value ?: 'Standardwert';\necho $result; // gibt 'Standardwert' aus\n```\n\nWarum hat es bei `0` als false funktioniert? Und was passiert, wenn die Variable nicht definiert ist? Wird das einen Fehler auslösen?\n\nErklärt mir bitte als Anfänger: In welchen Fällen sollte man `?:` anstelle des normalen ternären Operators oder `??` (null coalescing) verwenden? Wann sollte man ihn einsetzen und wann besser nicht?