PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS
Sąlygos sakiniai PHP skriptų vykdymo eigą galite valdyti naudodami sąlygos sakinius. Sąlygos sakiniai tai loginės struktūros, kuriose saugomas kodas, įvykdomas įgyvendinus tam tikrą sąlygą. Priklausomai nuo testo rezultato, skriptas vykdo atitinkamas operacijas ar funkcijas. Dažniausiai naudojami if ir if...else sąlygos sakiniai. Sąlygos sakinys if apdoroja bet kokį kodą, esantį už patikrinimo sąlygos. Jeigu sąlyga įvertinama, kaip true kodas įvykdomas. Sąlygos sakinys if...else suteikia galimybę nurodyti, kokį kodą vykdyti, jeigu sąlyga įvertinama kaip neteisinga (false). 2
IF sakinys Sąlygos sakinys pradedamas baziniu žodžiu if, tada rašomi paprasti skliaustai, o juose sąlyga, kurios teisingumą reikia patikrinti. Kodas, kuris bus vykdomas, jei sąlyga teisinga, rašomas riestiniuose skliaustuose. Nors paprastame vienos eilutės sakinyje riestinių skliaustų naudoti nebūtina, tačiau patartina juos naudoti visuose sąlygos sakiniuose, kad jie būtų aiškūs ir nuoseklūs. Sakinio if sintaksė: if (sąlyga) { sakiniai } 3
4
ELSE sakinys Jeigu norite pridėti bloką kodo, kuris bus vykdomas, jei sąlyga neteisinga, galite naudoti else sakinį. Sakinio else naudojimas užtikrina, kad nepriklausomai nuo sąlygos teisingumo, bent vienas kodo blokas bus įvykdytas. Sakinio if...else sintaksė: if (sąlyga) { sakiniai } else { sakiniai } 5
6
Kitokia if sakinio sintaksė PHP galima ir kitokia sakinio if sintaksė be riestinių skliaustų. Prieš sakinių bloką dedamas dvitaškis, o sakinys if užbaigiamas specialiu žodžiu endif. Pavyzdys: if ($procentai>75): echo "<p>testas išlaikytas</p>"; $sveikinti = 1; else: echo "<p>testas neišlaikytas</p>"; exit; endif; 7
if sakinys HTML dokumente Pastaroji sakinio if sintaksė lengvai pritaikoma HTML dokumente. Pavyzdys: <?php if($user_validated):?> <table> <tr> <td>vardas:</td><td>virginijus</td> </tr> <tr> <td>pavardė:</td><td>jasiūnas</td> </tr> </table> <?php else:?> <p>prašome prisijungti.</p> <?php endif?> 8
Papildoma informacija Naudodami elseif sakinį, galite patikrinti kelias sąlygas ir sukurti sudėtingą programos vykdymo eigos valdymą. Panašiai kaip ifelse sakinys, elseif leidžia pridėti alternatyvą prie paprastojo sąlygos sakinio. Sakinys elseif leidžia sukurti antrines sąlygas, kurios vertinamos tik tada, kai pirminė sąlyga įvertinta false. 9
Sakinio elseif pavyzdys $player1score = 8754; $player2score = 7983; if($player1score == $player2score) { echo "Lygiosios!"; } elseif($player1score > $player2score) { echo "Pirmasis žaidėjas laimėjo!"; } else { echo "Antrasis žaidėjas laimėjo!"; } 10
11
Trinaris operatorius Paprastus sąlygos priskyrimus galite atlikti naudodami trinarį operatorių. Jis yra naudingas tada, kai norite atlikti paprastą veiksmą, pvz., priskyrimo, kuris grindžiamas sąlygos testu. Svarbiausias šio būdo pranašumas, palyginti su įprastu if...else sakiniu, yra aiškumas. Trinariai sąlygos sakiniai dažniausiai naudojami priskyrimo sakiniuose. 12
Trinario operatoriaus pavyzdys Naudodami sakinį $greeting = $morning? 'Good morning!' : 'Hello!' ; galite priskirti pasveikinimą. Jei kintamojo $morning reikšmė yra true, kintamajam $greeting priskiriama eilutė Good morning!. Priešingu atveju kintamajam $greeting priskiriama eilutė Hello!. 13
Palyginimo operatoriai Simbolis Reikšmė Pavyzdys == Lygu $x == $y!= Nelygu $x!= $y < Mažiau $x < $y > Daugiau $x > $y <= Mažiau arba lygu $x <= $y >= Daugiau arba lygu $x >= $y 14
Loginiai operatoriai Simbolis Reikšmė Pavyzdys! Ne!$x && Ir $x && $y AND Ir $x and $y Arba $x $y OR Arba $x or $y XOR Ir ne $x xor $y 15
Parinkimo sakinys Parinkimo (angl. switch) sakinys suteikia galimybę valdyti programos vykdymo eigą. Jis lygina vieną reikšmę su daugeliu galimų reikšmių arba variantų. Kai randamas tinkamas variantas (angl. case), vykdomas po jo esantis kodas. Kodo vertinimas vykdomas tol, kol randamas sakinys break. Dažniausiai kiekvieno varianto paskutinėje eilutėje rašomas break sakinys, kuris switch sakiniui nurodo nutraukti atitikmenų (angl. matches) paiešką. 16
Sakinio switch sintaksė switch (išraiška) { case variantas1: sakiniai; [break;] case variantas2: sakiniai; [break;]... [default: sakiniai;] } 17
Kitokia sakinio switch sintaksė switch (išraiška): case (variantas1): sakiniai; [break;] case (variantas2): sakiniai; [break;]... [default: sakiniai;] endswitch; 18
Sakinio switch pavyzdys $spalva = 'geltona'; switch ($spalva) { case 'raudona': echo "Laukite!"; break; case 'geltona': echo "Pasiruoškite!"; break; case 'žalia': echo "Važiuokite!"; } 19
Variantų grupavimas Didelis switch sakinių privalumas yra galimybė grupei galimų variantų priskirti tą patį veiksmų bloką. Galimus variantus galite sugrupuoti praleisdami break sakinį ir kodą visuose, išskyrus paskutinįjį grupės variantą. 20
Sakinio switch su variantų grupavimu pavyzdys $menuo = 8; switch ($menuo) { case 3: case 4: case 5: echo "Pavasaris"; break; case 6: case 7: case 8: echo "Vasara"; break; case 9: case 10: case 11: echo "Ruduo"; break; case 1: case 2: case 12: echo "Žiema"; } 21
Papildoma informacija Galima nurodyti, kokį kodą vykdyti, jei netinka nė vienas variantas. Tam galite naudoti default (numatytąjį) sakinį. Default sakinys yra toks pat kaip case sakinys, tik vietoj bazinio žodžio case ir reikšmės reikia rašyti default. Kai naudojate default, šis sakinys turi būti paskutinis variantas switch sakinyje. Default sakinį galite sujungti su norimu skaičiumi prieš tai esančių case sakinių tokiu būdu: tiesiog praleiskite jų break sakinį. 22
Default sakinio pavyzdys $animal = "Fish"; switch ($animal) { case "Chicken": echo "Cluck, cluck"; break; case "Pig": echo "Oink, oink"; break; default: echo "Unknown animal"; } Kintamasis $animal neatitinka nė vieno varianto, todėl įvykdomas kodas default sakinyje. 23