Programmeren in PHP/Beslissingsstructuren: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
AventicumRobot (overleg | bijdragen)
k Robot: automatisch tekst vervangen (-{{GFDL-oud}} + )
Olivier Bommel (overleg | bijdragen)
loops samengevoegd met subpagina over loops
Regel 175:
}
echo $b;
?>
</source>}}
 
== Herhalingen ==
Herhalingen (meestal lussen genoemd, of in het Engels "loops", ook soms iteraties) worden gebruikt om een stuk PHP code meerdere keren uit te voeren (te herhalen). Er zijn verschillende soorten lussen.
=== De for-lus ===
Bij de for-lus loopt er een teller mee, die bijhoudt hoe vaak de lus doorlopen is. In de simpelste vorm ziet deze er zo uit:
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
for ($i = 1; $i <= 5; $i++)
{
echo $i;
}
?>
</source>}}
Dit betekent dus eigenlijk:
<source lang=php>
1. Geef variable "$i" de waarde 1.
2. Als $i kleiner is dan of gelijk is aan 5 voer stap 3 uit, anders stap 5
3. echo de waarde van $i
4. Tel 1 bij de waarde van $i ($i++) en ga naar stap 2.
5. Ga verder na de sluitende accolade }.
</source>
Een for-lus bestaat uit drie statements, het eerste statement wordt gebruikt om een waarde aan de teller toe te kennen, deze teller heeft meestal de naam $i. In het tweede statement wordt gekeken of $i kleiner is dan 5, is dat niet zo dan is de lus klaar en gaat PHP door met het volgende stuk code. Het derde en laatste statement is het telstatement dat vaak gebruik maakt van increment en decrement statements.
 
In veel situaties wordt het tweede statement gebruikt om te controleren of $i kleiner is dan de grootte van een array.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
// fout gebruik for lus
$arr = array(1,2,3,4,5);
for ($i = 0; $i < count($arr); $i++)
{
echo $arr[$i];
}
?>
</source>}}
 
In bovenstaand voorbeeld wordt iedere keer wanneer de lus uitgevoerd wordt het aantal elementen in de array $arr geteld.
Het is beter om slechts 1 keer te bepalen hoeveel elementen de array $arr bevat en dat kan op meerdere manieren.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
// mogelijkheid 1:
$arr = array(1,2,3,4,5);
$cnt = count($arr);
for ($i = 0; $i < $cnt; ++$i)
{
echo $arr[$i];
}
// mogelijkheid 2:
$arr = array(1,2,3,4,5);
for ($i = 0, $cnt = count($arr); $i < $cnt; ++$i)
{
echo $arr[$i];
}
?>
</source>}}
Zoals je ziet kan een statement in een for lus meerdere handelingen bevatten mits ze gescheiden zijn door komma's.
Het eerste statement wordt slechts 1 keer uitgevoerd. statement 2 en 3 worden elke lus doorloop uitgevoerd.
 
=== De while-lus ===
De while-lus gaat door zolang er aan een bepaalde conditie is voldaan, er loopt bij een while-lus geen teller mee. Als er niet aan een die conditie is voldaan doet de while-lus niets.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$a = 0;
while ($a < 5)
{
$a++;
echo $a;
}
?>
</source>}}
Dit voorbeeld doet hetzelfde als bij de for-lus, maar dan omslachtiger.
(voor dit voorbeeld kun je dus beter een for-lus gebruiken, maar deze loop is heel belangrijk bij databases.)
 
=== De do-while lus ===
De do-while-lus, of do-lus doet is bijna hetzelfde als de while-lus behalve dat de code in de do loop altijd een keer wordt uitgevoerd. Dit komt doordat de conditie pas aan het einde van het doorlopen van de loop wordt gecontroleerd.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$a = 0;
do
{
$a++;
echo $a;
}
while ($a < 5);
?>
</source>}}
vergelijk de resultaten van de do loop maar eens met de resultaten van de while loop.
 
=== De foreach loop ===
Met de foreach loop kun je de array's (lijsten) doorlopen zonder dat je de sleutel weet.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$lijst = array ("aap","Banaan","sleutelbos");
foreach ($lijst as $waarde)
{
echo $waarde;
}
?>
</source>}}
Dit is de simpelste vorm van een foreach loop, je hebt ook nog een vorm waarbij je ook de sleutel kan achterhalen.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$lijst = array (
"item" => "winkeltas",
"prijs" => "12 euro 50",
"Leeftijd" => 15
);
foreach ($lijst as $sleutel => $waarde)
{
echo $sleutel . " is: " . $waarde . " <br /> ";
}
?>
</source>}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.