Programmeren in PHP/Loops

Uit Wikibooks

Programmeren in PHP


  1. Inleiding
  2. Een webserver installeren
  3. Syntax
  4. Variabelen
  5. Beslissingsstructuren
  6. Constanten
  7. Rekenen
  8. Loops
  9. Includes
  10. Functies
  11. Gebruikersinvoer
  12. I/O in PHP
  13. Klassen
  14. MySQL en PHP
  15. Reguliere Expressies

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[bewerken]

Een 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
}
?>
  1. De boolean $doorgaan wordt op true(waar) ingesteld.
  2. Er wordt gecontroleerd of $doorgaan nog steeds true is
  3. De code binnen de while-lus wordt uitgevoerd. Hier kan code worde geschreven die de boolean op een bepaald moment false instelt.
  4. 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[bewerken]

De 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[bewerken]

Een 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:

  1. De indexvariabele $i op 0 instellen.
  2. Controleren of aan de voorwaarde wordt voldaan. In dit geval dus $i<10 dus $i moet kleiner zijn dan 10.
  3. 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.
  4. De indexvariable wordt met één verhoogd.
  5. Ga naar stap 2

foreach[bewerken]

Een 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[bewerken]

Een 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[bewerken]

De 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

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.