$_REQUEST wczytuje dalej po &

0

witam mam problem zrobilem sobie switcha

switch([$_REQUEST['shop']])
{
	case ['shop'];
		require_once('shop.php');
	break;
default: echo"mango";
break
}

ale jest taki problem ze defaulta mi laduje wszędzie dalej w linku np
mam link
shopik.com.pl/shop&kaszanka&continue
to w kaszanka oraz continue widze default echo mango
wie ktoś jak mogę to poprawić?

0

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

0
Desu napisał(a):

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

prościej napiszę,
http://shopik.com.pl/shop.php?produkt=2&typ=kaszanka&do=continue

i jak uzywam requesta to w np
http://shopik.com.pl/shop.php?produkt=2 mam defaulta
dalej
http://shopik.com.pl/shop.php?produkt=2&typ=kaszanka tez mam defaulta
a chce zeby jeden default np $_Request['produkt']
pokazywalo tylko w produkt a nie dalej
tak samo case mi wywala nie tylko w produkt w dalszym linku tez

1 użytkowników online, w tym zalogowanych: 0, gości: 1