Autor | Zpráva | ||
---|---|---|---|
dife Profil * |
#1 · Zasláno: 14. 2. 2007, 06:05:02
v Promenne GET mam pokazde neco jineho tedy maximalne moznosti
Resim toto: asi pro deset ma byt stejny vysledek pro dalsich pet jiny a proten zbytek take jiny. a nevim jak to zapsat.. nyni to mam if ........ elseif......... { tu je to stejne } elseif......... elseif......... elseif........{tu je to u dalsich peti stejne} . . . . . . . elseif........... {a tu je to u toho ybztku stejne} nevite jak to zjednodusit.? |
||
Peter p360t Kováč Profil |
#2 · Zasláno: 14. 2. 2007, 09:16:46
no mohol by si to trochu presnejšie popísať. každopádne, na tebou načrtnuté konštrukcie sa používa switch:
robí to v podstate to isté, ale je to rýchlejšie pri dlhších konštrukciách (teda, ja som to nemeral, ale píšu to v dokumentácii). viac na http://www.php.net/manual/cs/control-structures.switch.php |
||
Joker Profil |
#3 · Zasláno: 14. 2. 2007, 09:46:03
Peter p360t Kováč
A v tomhle případě bych ještě navíc využil "propadávání", takže... Nechce se mi vypisovat deset možností :) tak řekněme, že mám čísla slovně a první tři jsou první skupina, druhé dvě druhá skupina a zbytek třetí skupina: switch($promenna){ case "jednicka": case "dvojka": case "trojka": echo("První skupina"); break; case "ctyrka": case "petka": echo("Druhá skupina"); break; default: echo("Třetí skupina"); } Z pohledu zpracování toho kódu je to sice úplně totéž jako if, elseif, elseif, else, ale IMHO je to daleko přehlednější. |
||
HonzaH2 Profil |
#4 · Zasláno: 14. 2. 2007, 09:56:26
pokud dobře chápu, že pro deset různých hodnot GET má být stejný výsledek a pak pro 5 dalších jiný stejný výsledek a pro zbytek třetí jiný výsledek, tak bych to napsal jen ve třech větvích takto:
if (podmínka1 or podmínka2 or ....... podmínka10) výsledek1; elseif(podmínka1 or podmínka2 or ....... podmínka5) výsledek2; else výsledek3; |
||
dife Profil * |
#5 · Zasláno: 14. 2. 2007, 19:56:09
dekuji zaujalo me to posledni reseni od HonzaH2.
vysledke je zde: "funkcni " if (isset($_GET["dalsi"])) { $spatyp = $_GET["typ"]; $odkaz = $_GET["odkaz"]; if ($spatyp=="SP41") { $ipadresa = "nastzar4";} elseif ($spatyp=="SP41" or $spatyp=="SP42" or $spatyp=="SP21" or $spatyp=="SP22" or $spatyp=="SP22" ) {$ipadresa = "nastzar4";} elseif ($spatyp=="SP01" or $spatyp=="SP001" or $spatyp=="SP002" or $spatyp=="SP0003" or $spatyp=="PT-EU" ) {$ipadresa = "nastzar2";} elseif ($spatyp=="SP100" or $spatyp=="SP102" or $spatyp=="SP02" ) {$ipadresa = "nastzar3";} else { echo "<center><b> Erorr 31 = </b>nebyla splněna podmínka sekce "nastzar5".</center>";} } ted me napada ze bych tio jeste zjdenoduchsil... :-) |
||
Hugo Profil |
#6 · Zasláno: 14. 2. 2007, 20:17:38
dife
IMHO je řešení pomocí switch elegantnější a udržovatelnější. (viz Joker) |
||
Joker Profil |
#7 · Zasláno: 14. 2. 2007, 20:35:30
Považuju toto:
switch($spatyp){ case "SP41": case "SP42": case "SP21": case "SP22": $ipadresa = "nastzar4"; break; case "SP01": case "SP001": case "SP002": case "SP0003": case "PT-EU": $ipadresa = "nastzar2"; break; case "SP100": case "SP102": case "SP02": $ipadresa = "nastzar3"; break; default: echo "<center><b> Erorr 31 = </b>nebyla splněna podmínka sekce "nastzar5".</center>"; } za přehlednější a čitelnější, než: if ($spatyp=="SP41") { $ipadresa = "nastzar4";} elseif ($spatyp=="SP41" or $spatyp=="SP42" or $spatyp=="SP21" or $spatyp=="SP22" or $spatyp=="SP22" ) {$ipadresa = "nastzar4";} elseif ($spatyp=="SP01" or $spatyp=="SP001" or $spatyp=="SP002" or $spatyp=="SP0003" or $spatyp=="PT-EU" ) {$ipadresa = "nastzar2";} elseif ($spatyp=="SP100" or $spatyp=="SP102" or $spatyp=="SP02" ) {$ipadresa = "nastzar3";} else { echo "<center><b> Erorr 31 = </b>nebyla splněna podmínka sekce "nastzar5".</center>";} } |
||
kvoky Profil * |
#8 · Zasláno: 14. 2. 2007, 21:00:09
Joker
Super, ani sem nevěděl že takhle to jde dělit na skupiny...Díky |
||
tiso Profil |
#9 · Zasláno: 14. 2. 2007, 21:30:25
kvoky ďalšia možnosť: in_array - riešenie bude podobné ako napísal HonzaH2
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0