$owoc = $_GET['owoc'] ?: 'banan';
Jeżeli $_GET będzie pusty, to do zmiennej powinno być przypisane 'banan'.
Jednak niektórzy robią to też tak:
$owoc = $_GET['owoc'] ? $_GET['owoc'] : 'banan';
Praktyczny przykład jaki znalazłem, to sprawdzenie IP mając chmurę Cloudflare na stronie. CF podaje takie rozwiązanie:
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"] ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER["REMOTE_ADDR"];
Dlaczego nie może być krócej?
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"] ?: $_SERVER["REMOTE_ADDR"];
Co za różnica? Czy któreś rozwiązanie jest "bardziej poprawne" od drugiego? Jeszcze inni wplątują w to isset() ale to już pomijam.
Z góry dzięki za pomoc.