Dlaczego tak
Funkcja setcookie jedynie dodaje do odpowiedzi nagłówek Set-Cookie, a tablica $_COOKIE zawiera ciasteczka wysłane przez przeglądarkę w bieżącym żądaniu. Przy pierwszym wejściu przeglądarka nie wysłała ciasteczka, więc operator ?? zwraca „brak”, a nie generuje błędu. Po odświeżeniu przeglądarka dołącza zapisane ciasteczko motyw do żądania i skrypt wyświetla „ciemny”.