Autor Zpráva
filiphk
Profil
Ahoj,

chtěl bych se zeptat, zda je nějakým způsobem možné zjednodušit tento zápis:

if($_GET["text"] == "a") {echo "Abeceda";}
elseif($_GET["text"] == "b") {echo "Bagr";}
elseif($_GET["text"] == "c") {echo "Cuketa";}
elseif($_GET["text"] == "d") {echo "Dakar";}
else {echo "$text2";}


Především, aby se v něm neustále nemuselo opakovat elseif($_GET["text"].
Hugo
Profil
switch ($_GET['text'])
{
  case 'a':
    echo 'Abeceda';
    break;
  
  case 'b':
    echo 'Bagr';
    break;
}
nightfish
Profil
pokud by těch možností mělo být o hodně víc než 4, tak by možná stálo za to použít pole

$pole = array("a" => "Abeceda", "b" => "Bagr", "c" => "Cuketa", "d" => "Dakar", ...);
if (isset($_GET['text'])) $text = $_GET['text']; else $text = "";


EDIT:
a poslední řádek má být
if (isset($pole[$text])) echo $pole[$text]; else echo $text2;

místo původního
if (in_array($text, $pole)) echo $pole[$text]; else echo $text2;

za upozornění děkuji Jack Fingerovi
filiphk
Profil
Díky za pomoc. Nejspíše kód přepíšu do toho pole, protože těch možností je kolem stovky. :c)
Jack Finger
Profil
nightfish
nejsem si jist, zda jsem to správně pochopil, ale nemělo by místo in_array() být spíše array_key_exists() ?
nightfish
Profil
Jack Finger
pochopil jsi to správně, psal jsem to bez přemýšlení, provedu úpravu v původním příspěvku (akorát místo array_key_exists bych použil isset)
Jack Finger
Profil
nightfish
zrovna dneska jsem to řešil, tak mě to trklo. zkusím taky isset :o)
filiphk
Profil
Díky všem, příklad od nightfishe (upravený Jackem Fingerem) mi funguje na jedničku. :c)
Vyřešeno, zamykám.
Toto téma je uzamčeno. Odpověď nelze zaslat.