Konstrukcinio elemento “switch” panaudojimas filtruojant duomenis
by neworld on Rgs.01, 2007, under Programavimas
javascript, c++, php bei dauguma panašių kalbų turi šią konstrukciją. Kam ji skirta paskaitykite čia: http://www.php.net/switch (trumpai tariant supaprastint if naudojimą).
Šis straipsniukas skirtas tiems kurie moka ir naudojasi šiuo elementu.
Taigi pradėkime, tarkime turime kelis puslapius: ‘Titulinis’, ‘Kontaktai’, ‘Admin’, ‘Nuorodos’, ‘Moderuoti’,'Kita’,'Straipsniai’.
Sakykime visa administravimą/moderavimą laikome tame pačiame puslapyje patogumo sumetimais (sakykim bet kada galima labai lengvai šį bei ta peksiti ir pnš. Be to mes turime statinį, unikalų IP. Taigi mes norime kad tik iš savo ip tegalėtume prisijungti prie administravimo. Taigi mes galime pasirašyti paprastą funkciją:
[code lang="php"]
if (($puslapis=='Admin') or ($puslapis=='Moderuoti')) {
if ($ip=$admin_ip) {
include($puslapiai[$puslapis]);
} else {
echo "klaida";
}
} else {
include($puslapiai[$puslapis]);
}[/code]
Kodas aiškus ir suprantamas. Noriu pabrėžti tai, jog reikia visada filtruoti duomenis. Kadangi man patogu visus reikiamus puslapius sudėti į masyvą o paskui include($puslapiai[$puslapis]); įkrauti tik tuos puslapius kurie yra tame masyve.
Taigi kalba eina ne apie tai, o apie switch (jus ir pavadinimas byloja apie jį).
Taigi dabar parašyiu tą patį algoritmą panaudodamas switch:
[code lang="php"]
switch ($puslapis) {
case 'Admin':
case 'Moderuoti':
if ($ip=$admin_ip) {
include($puslapiai[$puslapis]);
} else {
echo "klaida";
}
default: include($puslapiai[$puslapis]);
} [/code]
Taigi kodas darys tą patį, tačau tvarkingiau atrodo, be to bus lengviau pridėti, ištrinti, redaguoti esamus puslapius į kuriuos noreime kad nekadėjau neįsilaužtų.
Nors straipsnyje naudojau vienam PHP kalbą, tačiau tą patį galima atlikti naudojant javascript, c# kalbas (bandžiau), taip pat kogero ir c++, c, JAVA