Przeczytaj jakąś książkę o podstawach programowania :P
switch ($scalar) {
case 'A':
break;
case 'B':
break;
default:
// ...
}
Ty do switcha przekazujesz tablicę, a nie skalar (zmienna skalarna to zmienna przechowująca typ prosty, np. integer, float, string, boolean, typ złożony to np. tablica lub obiekt).
Edit
Żartowałem (chyba ja sięgnę po książkę o podstawach php...), ===
działa dla tablic, więc ma to prawo zadziałać. Nie mniej jednak moim zdaniem powinieneś używać wartości skalarnych w switch, żeby ktoś czytający Twój kod nie miał WTF. Poza tym ===
jest order sensitive, więc jak zmienisz kolejność elementów, to już tablice się nie będą równały.
Problem jest taki, że w tablic $_REQUEST istnieje klucz shop, ale nie ma wartości, dlatego zawsze widzisz default. Spróbuj tak:
shopik.com.pl/?shop=shop&kaszanka=kaszanka
Tutaj masz jak działają zmienne przekazywane w URL, bo chyba nie wiesz http://html.net/tutorials/php/lesson10.php