PHP-ohjausrakenteet: Jos muuta, vaihda kirjainkokoa

โšก ร„lykรคs yhteenveto

Ohjausrakenteet ja silmukat pรครคttรคvรคt PHP-ohjelman polun ja toistavat koodilohkoja tehokkaasti. Tรคmรค lรคpikรคynti selittรครค if-else- ja switch-pรครคtรถsrakenteet ja kรคsittelee sitten for-, while-, do-while- ja foreach-silmukoita, joita kilpailijat odottavat tรคssรค aiheessa.

  • ๐Ÿ”€ Ohjausvirta: Ohjausrakenne valitsee suoritettavan koodin ehdon perusteella, muuttaen suoran sekvenssin pรครคtรถksentekoon perustuvaksi logiikaksi.
  • ๐Ÿ”ค Jos-muuten: if-else-rakenne suorittaa yhden lohkon, kun ehto on tosi, ja varalohkon, kun se on epรคtosi.
  • ๐Ÿงฎ Kytkinkotelo: switch vertaa yhtรค arvoa useisiin tapaustunnisteisiin ja suorittaa vastaavan lohkon tai oletusarvon, kun mikรครคn ei vastaa toisiaan.
  • ๐Ÿ” Silmukoiden yleiskatsaus: Silmukat toistavat koodilohkon, mikรค sรครคstรครค sinut samojen lauseiden kirjoittamiselta monta kertaa.
  • ๐Ÿ”ข Laskentasilmukat: for ja while toista niin kauan kuin ehto on voimassa, ihanteellista silloin, kun tiedรคt tai track kuinka monta iteraatiota tarvitaan.
  • ๐Ÿ“ฆ Foreach-silmukka: foreach kรคy lรคpi jokaisen taulukon elementin ilman, ettรค tarvitsee itse hallita indeksilaskinta.
  • ๐Ÿค– AI Assist: Tekoรคlytyรถkalut voivat refaktoroida pitkiรค if-else-ketjuja switch- tai match-lausekkeiksi ja auttaa korjaamaan รครคrettรถmiรค silmukoita.

PHP-ohjausrakenteet ja -silmukat

Mikรค on ohjausrakenne?

Code Suoritus voidaan ryhmitellรค luokkiin alla esitetyllรค tavalla.

  • Perรคkkรคinen โ€“ tรคmรค tarkoittaa kaiken koodin suorittamista siinรค jรคrjestyksessรค kuin se on kirjoitettu.
  • Pรครคtรถs โ€“ Tรคmรค edellyttรครค valinnan tekemistรค useiden vaihtoehtojen perusteella. Suoritettava koodi riippuu ehdon arvosta.

Ohjausrakenne on koodilohko, joka pรครคttรครค ohjelman suorituspolun asetetun ehdon arvon mukaan.

Tarkastellaan nyt joitakin ohjausrakenteita, jotka PHP tukee.

PHP JOS muu

Josโ€ฆ niinโ€ฆ muu on yksinkertaisin ohjausrakenneSe arvioi ehdot kรคyttรคen Boolen logiikkaa.

Milloin kรคyttรครค, josโ€ฆ sittenโ€ฆ muuten

  • Sinulla on koodilohko, joka tulee suorittaa vain, jos tietty ehto on tosi
  • Sinulla on kaksi vaihtoehtoa, ja sinun on valittava yksi.
  • Josโ€ฆ sittenโ€ฆ muuten josโ€ฆ kรคytetรครคn, kun sinun on valittava enemmรคn kuin kaksi vaihtoehtoa ja sinun on valittava yksi tai useampi

syntaksi. Funktion ifโ€ฆ thenโ€ฆ else syntaksi on:

<?php
if (condition is true) {
    block one
} else {
    block two
}
?>

Tร„SSร„,

  • "jos (ehto on tosi)โ€ on ohjausrakenne
  • "estรครค yksiโ€ on koodi, joka suoritetaan, jos ehto on tosi
  • muu on varavaihtoehto, jos ehto on epรคtosi
  • "lohko kaksiโ€ on koodilohko, joka suoritetaan, jos ehto on epรคtosi

Kuinka se toimii. Alla oleva vuokaavio havainnollistaa, miten ifโ€ฆ thenโ€ฆ else -ohjausrakenne toimii.

PHP JOS muu

Katsotaanpa tรคtรค toiminnassa. Alla oleva koodi kรคyttรครค "josโ€ฆ sittenโ€ฆ else" mรครคrittรครคkseen suuremman arvon kahden luvun vรคlillรค.

<?php

$first_number = 7;

$second_number = 21;

if ($first_number > $second_number){

echo "$first_number is greater than $second_number";

}else{

echo "$second_number is greater than $first_number";

}

?>

lรคhtรถ:

21 is greater than 7

PHP-kytkinkotelo

Vaihdaโ€ฆ kotelo on samanlainen kuin josโ€ฆ niinโ€ฆ muuten ohjausrakenne.

Se vain teloitettiin yksi koodilohko riippuen arvo kunnosta.

Jos mikรครคn ehto ei tรคyty, suoritetaan oletusarvoinen koodilohko.

Siinรค on seuraava perussyntaksi.

<?php
switch(condition){

case value:

// block of code to be executed

break;

case value2:

// block of code to be executed

break;

default:

// default block code

break;

}
?>

Tร„SSร„,

  • "vaihtaa(โ€ฆ){โ€ฆ}" on ohjausrakenteen lohkokoodi
  • "tapausarvo: tapausโ€ฆ" ovat suoritettavat koodilohkot ehdon arvosta riippuen
  • "oletus:" on koodilohko, joka suoritetaan, kun mikรครคn arvo ei vastaa ehtoa

Kuinka se toimii

Alla oleva vuokaavio havainnollistaa kytkimen ohjausrakenteen toimintaa.

PHP-kytkinkotelo

Kรคytรคnnรถn esimerkki

Alla oleva koodi kรคyttรครค kytkimen ohjausrakennetta nรคyttรคmรครคn viestin viikonpรคivรคstรค riippuen.

<?php

$today = "wednesday";

switch($today){

case "sunday":

echo "pray for us sinners.";

break;

case "wednesday":

echo "ladies night, take her out for dinner";

break;

case "saturday":

echo "take care as you go out tonight.";

break;

default:

echo "have a nice day at work";

break;

}

?>

lรคhtรถ:

ladies night, take her out for dinner

PHP-silmukat

Silmukat ovat ohjausrakenteita, jotka toistavat koodilohkoa niin kauan kuin ehto pysyy voimassa. Ne sรครคstรคvรคt saman lausekkeen kirjoittamiselta monta kertaa. PHP tukee neljรครค silmukkatyyppiรค: for, while, do-while ja foreach. Tarkemman oppaan lรถydรคt erillisestรค... PHP-silmukan opetusohjelma.

PHP For Loop

For-silmukkaa kรคytetรครคn, kun tiedรคt etukรคteen, kuinka monta kertaa koodia tulisi suorittaa. Se yhdistรครค laskurin, ehdon ja lisรคyksen yhdelle riville.

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i;
}
?>

lรคhtรถ:

01234

PHP While-silmukka

While-silmukka toistaa lohkoa niin kauan kuin sen ehto pysyy tosi. Ehto tarkistetaan ennen jokaista iteraatiota, joten runko voi suorittaa lohkon nolla kertaa.

<?php
$i = 0;
while ($i < 5) {
    echo $i;
    $i++;
}
?>

lรคhtรถ:

01234

PHP Do-While -silmukka

Do-while-silmukka on kuin while-silmukka, mutta se tarkistaa ehdon rungon jรคlkeen. Tรคmรค takaa, ettรค lohko suoritetaan ainakin kerran.

<?php
$i = 0;
do {
    echo $i;
    $i++;
} while ($i < 5);
?>

lรคhtรถ:

01234

PHP Foreach-silmukka

Foreach-silmukka on suunniteltu taulukoille. Se kรคy lรคpi jokaisen elementin ilman, ettรค sinun tarvitsee hallita indeksilaskinta.

<?php
$colors = array("red", "green", "blue");
foreach ($colors as $color) {
    echo $color . " ";
}
?>

lรคhtรถ:

red green blue

UKK

Kรคytรค switch-operaattoria, kun vertaat yhtรค muuttujaa useisiin kiinteisiin arvoihin, koska se on helpompi lukea kuin pitkรค if-else-ketju. Kรคytรค if-else-operaattoria alueille, monimutkaisille ehdoille tai eri muuttujien vertailuille.

break pysรคyttรครค silmukan kokonaan ja siirtyy sitรค seuraavaan koodiin. continue ohittaa nykyisen iteraation loppuosan ja hyppรครค seuraavaan lopettamatta silmukkaa kokonaan.

match on moderni vaihtoehto PHP 8:ssa esitellylle switch-funktiolle. Se palauttaa arvon, kรคyttรครค tarkkaa vertailua, ei tarvitse break-lauseita ja heittรครค virheen, jos mikรครคn kรคsi ei tรคsmรครค, mikรค tekee siitรค turvallisemman ja ytimekkรครคmmรคn.

Kyllรค. Tekoรคly voi kirjoittaa pitkรคn if-else-ketjun uudelleen vastaavaksi kytkimeksi tai PHP 8:n vastinelausekkeeksi, keeping logiikka identtinen, mutta koodista tulee lyhyempi ja helpommin luettava. Testaa tulosta jรคlkikรคteen.

Kyllรค. Tekoรคly voi tarkastaa silmukan ehdon ja laskurin, havaita puuttuvan lisรคyksen tai ehdon, joka ei koskaan muutu epรคtosiksi, ja ehdottaa korjausta, jotta silmukka pรครคttyy tarkoitetulla tavalla.

Tiivistรค tรคmรค viesti seuraavasti: