Autor Zpráva
Someone
Profil
Dobrý den, nevím si rady s jedním problémem. Jak pomocí funkce switch poznat jaký $_GET je zadán? Nevím jak to správně vyjádřit a proto uvedu příklad. Jak poznat pomocí switch zda je
neco.php?id=1
nebo
neco.php?str=1
Jak pomocí switch poznám zda je tam STR nebo ID? Předem děkuji za rady a nápady.
unlucky
Profil
bych to resil pres if isset
Tori
Profil
if (isset($_GET['id'])) {
  // je zadané "id" 
} elseif (isset($_GET['str'])) { // pokud se můžou vyskytnout oba parametry, změňte "elseif" na "if"
  // je zadaný "str"
}
Darker
Profil
Přesně tak, řešením je isset. Nezapomeň na skutečnost, že mohou být zadané oba.
Someone
Profil
A jde to nějak pomocí toho switche? Něco takového:
  switch($_GET) {
    case isset($_GET['id']):
    echo "Id";
    break;
    case isset($_GET['str']):
    echo "str";
    break;
    default:
    echo "nic";
    break;
  }

edit: Toto mi funguje jediné co nejde je to, že když není zadán $_GET tak to nevyhodí "nic" ale "id"
Davex
Profil
Možná by to šlo nějak takto:
switch (key($_GET)) {
  case 'id':
    echo 'id: ', $_GET['id'];
    break;
  case 'str':
    echo 'str: ', $_GET['str'];
    break;
  default:
    echo 'nic nebo něco jiného';
}
Someone
Profil
To je přesně ono.. na funkci key jsem ještě nenarazil, takže děkuji. Můžu jen otázku ja kto funguje? Proč je za tím "id:" to $_GET['id'] ?
Davex
Profil
Someone:
Proč je za tím "id:" to $_GET['id'] ?
Je to tam zbytečné, klidně to smaž.
Someone
Profil
Dobře, a ta funkce Key? co to přesně provede s tím $_GET ?
Davex
Profil
Jak sis mohl přečíst v dokumentaci, tak funkce key() vrácí index současného prvku pole. V tvém případě vrátí první index.
Someone
Profil
Ok, děkuji za pomoc.
DoubleThink
Profil *
Co když nebude hledaná proměnná první? Logičtější mi připadá běžný foreach.

foreach($_GET as $key=>$value){
   switch($key){
      case 'id':
         echo "$key je rovno $value";
   }
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0