Programmeren in PHP/Loops
Lussen (of in het Engels "loops" genoemd) worden gebruikt om een stuk PHP code meerdere keren uit te voeren(dus te herhalen). Er zijn verschillende commando's om enigszins verschillende typen lussen te creëren:
- while
- do-while
- for
- foreach
while
bewerkenEen while-lus werkt als volgt:
while(aan deze voorwaarde wordt voldaan){ // doe dit }
Zolang er aan de voorwaarde die in de while-lus is omschreven wordt voldaan, zal de lus haar code blijven herhalen.
PHP-code: een while-lus met teller
<?php
$i = 0;
while ($i < 10){
//doe dit
$i++;
}
?>
In dit voorbeeld is er een teller $i voor de loop gedefiniëerd. Binnen en dat de teller wordt verhoogd tussen de accolades. Als er een teller wordt gebruikt zal in de praktijk hiervoor meestal wel de for-lus worden gebruikt.
Een andere manier waarop een while-lus kan worden gebruikt is met een boolean:
PHP-code: een while-lus met boolean
<?php
$doorgaan=true;
while($doorgaan){
// doe dit
}
?>
- De boolean $doorgaan wordt op true(waar) ingesteld.
- Er wordt gecontroleerd of $doorgaan nog steeds true is
- De code binnen de while-lus wordt uitgevoerd. Hier kan code worde geschreven die de boolean op een bepaald moment false instelt.
- Zolang $doorgaan true is, wordt de code tussen accolades uitgevoerd, anders wordt de lus beëindigd en de code erna uitgevoerd
- LET OP: Zorg dat er geen oneindige loop ontstaat! De waarde $doorgaan moet een bepaalde keer false worden, anders wordt de code oneindig herhaald, en dat is niet de bedoeling.
do-while
bewerkenDe do-while-lus, of do-lus doet is bijna hetzelfde als de while-lus behalve dat de code in de do-lus altijd eerst een keer wordt uitgevoerd. Dit komt doordat de conditie pas aan het einde van het doorlopen van de lus wordt gecontroleerd.
PHP-code:
<?php
$a = 0;
do
{
$a++;
echo $a;
}
while ($a < 5);
?>
for
bewerkenEen for loop werkt als volgt:
for (initialisatie van de indexvariabele;stop-voorwaarde voor de indexvariabele;aanpas-opdracht voor de indexvariabele na elke uitvoeringsstap ){ // voer de code uit die hier staat; }
Een simpele for-lus ziet er zo uit:
PHP-code: een for-lus
<?php
for($i=0;$i<10;$i++){
echo 'Hoi. $i is nu' . $i . '<br />';
}
?>
Wat deze code doet:
- De indexvariabele $i op 0 instellen.
- Controleren of aan de voorwaarde wordt voldaan. In dit geval dus $i<10 dus $i moet kleiner zijn dan 10.
- Als er wordt voldaan, voer de code tussen de accolades {} uit, dus in dit geval Hoi op het scherm laten zien gevolgd door de waarde van $i.
- De indexvariable wordt met één verhoogd.
- Ga naar stap 2
foreach
bewerkenEen foreach-lus wordt gebruikt om een array te doorlopen en bijvoorbeeld de waarden op het scherm te laten zien. Er bestaat een korte en een lange notatie.
Korte notatie
bewerkenEen voorbeeld:
PHP-code: een foreach-lus - korte notatie
<?php
$array = array("aap", "noot", "mies", "pizza", "chocola", "appel", "banaan");
echo 'De volgende woorden staan in de array:<br />';
foreach($array as $woord){
echo $woord . '<br />';
}
echo 'We zijn nu aan het eind van de array gekomen';
?>
Dan verschijnt dit op het scherm:
De volgende woorden staan in de array: aap noot mies pizza chocola appel banaan We zijn nu aan het eind van de array gekomen
Lange notatie
bewerkenDe lange notatie wordt meestal gebruikt voor een associatieve array, maar het kan ook met een normale array:
PHP-code: een foreach-lus - lange notatie
<?php
$array = array("aap", "noot", "mies", "pizza", "chocola", "appel", "banaan");
echo 'De volgende woorden staan in de array:<br />';
foreach($array as $key=>$woord){
echo $key . '. ' .$woord . '<br />';
}
echo 'We zijn nu aan het eind van de array gekomen';
?>
Dan verschijnt dit op het scherm:
De volgende woorden staan in de array: 0. aap 1. noot 2. mies 3. pizza 4. chocola 5. appel 6. banaan We zijn nu aan het eind van de array gekomen
Het belangrijkste verschil zit in de code tussen de haakjes achter foreach: Er staat $array as $key=>$woord ipv $array as $woord. In een normale array is de key $key een getal. Voor de eerste waarde uit de array is de key 0, voor de tweede 1, enz.
En dan nu met een associatieve array:
PHP-code: een foreach-lus - lange notatie
<?php
$array = array("dier"=>"aap", "eten"=>"pizza", "snoepgoed"=>"chocola", "fruit"=>"appel");
echo 'De volgende woorden staan in de array:<br />';
foreach($array as $key=>$woord){
echo $key . '. ' .$woord . '<br />';
}
echo 'We zijn nu aan het eind van de array gekomen';
?>
Dit geeft het volgende:
De volgende woorden staan in de array: dier. aap eten. pizza snoepgoed. chocola fruit. appel We zijn nu aan het eind van de array gekomen
Hier wordt een woord als key gebruikt, zoals dier als key voor aap