PHP
PHP KOULUTUSTA VUONNA 2025!
-
PHP koulutus
-
WordPress PHP-devaajalle koulutus
-
MySQL koulutus
-
Apache HTTPd koulutus
-
Microsoft IIS koulutus
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
PHP:n silmukkarakenteet: while, do while, for ja foreach
PHP tarjoaa useita silmukkarakenteita. Vaikka kaikki silmukat tekevät näennäisesti samaa, on jokaisella rakenteella oma käyttötarkoitus.
- while- tai do while-silmukka on hyvä valinta, kun toistojen määrä on tuntematon
- for-silmukka puolestaan toimii parhaiten, kun tiedämme tarkalleen kuinka monta kertaa toistamme silmukan
- foreach on erityisesti hyödyllinen taulukoiden ja objektien läpikäymisessä
while-silmukkarakenne
While-silmukkaa käytetään, kun halutaan suorittaa koodia niin kauan kuin tietty ehto on tosi. Silmukka tarkistaa ehdon ennen lohkon suoritusta. Jos ehto on epätosi heti ensimmäisellä tarkistuksella, silmukkaa ei suoriteta kertaakaan. While lausekkeen syntaksi on:
while (ilmaus) {
//tee jotain
}
Esimerkiksi siis :
$a = 0;
while ($a<100) {
$a= $a + 1; // kasvata arvoa yhdellä joka silmukalla - tämä estää ikisilmukan
print $a ;
print "<br/>";
do while-silmukkarakenne
Do-while-silmukka toimii samalla tavalla kuin while, mutta siinä koodi suoritetaan ainakin kerran riippumatta siitä, onko ehto tosi vai epätosi. Ehto tarkistetaan vasta silmukan lopussa.
do while (ilmaus) {
//tee jotain
}
Esimerkiksi:
$i = 0;
do {
$i = $i + 1;
print $i;
print "<br/>";
} while ($i < 5); // Ehto tarkistetaan vasta jälkeenpäin
for-silmukka
For-silmukka on tarkoitettu tilanteisiin, joissa lauselohko halutaan suorittaa n - kertaa. Syntaksiltaan se on:
for(alkuarvo; ehto; muutos) {
// suorita jotain
}
Siispä esimerkiksi :
for ($a = 1; $a <= 5; $a++) {
print("Luku on : $a <br/> \n");
}
foreach-silmukka
Foreach-silmukkaa käytetään erityisesti taulukoiden läpikäymiseen. Se käy läpi taulukon tai hashtaben arvot ja asettaa kunkin arvon (tai avaimen ja arvon) määritettyihin muuttujiin. Käyttötavasta riippuen syntaksi on jompi kumpi alla olevista:
// tapa 1: kun halutaan käydä läpi vain arvot
foreach ($taulukko as $arvo) {
// tee jotain
}
// tapa 2: kun halutaan käydä läpi avaimet ja arvot
foreach ($taulukko as $avain => $arvo) {
// tee jotain avaimen ja arvon kanssa
}
Ensimmäinen tapa purkaa taulukon asettaen sen hetkisen indeksin arvon muuttujaan ($arvo):
// foreach(taulukko as $arvo)
$arrData = array (1,2,3);
foreach ($arrData as $val){
print $val; // 1...2...3
}
Jälkimmäinen tapa käy läpi hashtablen nimi-arvo parit ja sijoittaa ne annettuihin muuttujiin ($avain, $arvo).
//foreach(taulukko as $avain => $arvo)
$arrFormat = array (
"Minä" => "olen",
"Sinä" => "olet",
"Hän" => "on"
);
foreach($arrFormat as $form => $verb){
print "$form $verb"; // minä olen.... sinä olet... hän on
}
Varo ikisilmukkaa
Ikisilmukka syntyy kun silmukkarakenne kohtaa ehdon, joka ei toteudu koskaan. Tälläisessa tilanteessa koodi kuormittaa palvelinta, niin pitkään että palvelimen aikakatkaisu toteutuu tai palvelin kaatuu. Alla oleva esimerkki luo ikisilmukan:
$a = 0;
$b = 0;
While ($a<100) {
$b=$b+1;
}
Jotta asia korjautuisi tulisi koodin olla:
$a = 0;
$b = 0;
While ($a<100) {
$b=$b+1;
$a = $b;
}
break ja continue
Break
ja continue
ovat apukomentoja, joiden avulla voidaan joko keskeyttää tai jatkaa ohjausrakenteen suoritusta.
Break-komento lopettaa silmukan suorituksen heti, kun sitä kutsutaan. Tämä voi olla hyödyllistä, kun tiedämme, että emme tarvitse enää lisää toistoja.
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) {
break; // Lopettaa silmukan, kun $i on 5
}
print "$i <br>";
}
Continue lausetta käytetään kun halutaan ohittaa silmukka jossain tietyssä kohden - kumminkaan siitä kokonaan poistumatta.
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 == 0) {
continue; // Hyppää yli parilliset luvut
}
print "$i <br>";
}