Programmeren in PHP/Beslissingsstructuren: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Pjetter (overleg | bijdragen)
k Wijzigingen door 77.162.24.108 hersteld tot de versie na de laatste wijziging door Pjetter
Regel 1:
{{PiPHP}}
=== Keuzes ===
Soms moet je keuzes maken, op basis van bijvoorbeeld gebruikersinvoer, of je wilt kijken of variabele een bepaalde waarde hebben.
==== If/elseif/else statements ====
Een if statement (en bijbehorende elseif en else statements) zijn de meest voorkomende statements om te kijken of er aan een bepaalde conditie is voldaan. Zo kan je bijvoorbeeld kijken of een getal hoger of lager is dan een ander getal. Zie de volgende tabel
 
{| border=1
|-
| Operator
| Betekenis
|-
| >
| Groter dan
|-
| <
| Kleiner dan
|-
| ==
| Gelijk aan
|-
| !=
| Niet gelijk aan
|-
| !==
| Niet gelijk aan (met typecontrole)
|-
| ===
| Gelijk aan (met typecontrole)
|-
| >=
| Gelijk aan, of groter dan
|-
| <=
| Gelijk aan, of kleiner dan
|}
 
Deze operators zijn op de volgende manier te gebruiken
{{code
|Taal=PHP
|Titel=
|Code=
<source lang=php>
<?php
//Omdat de naam van de variabele voor het voorbeeld niet belangrijk is, gebruik ik foute namen.
$a = 4;
$b = 2;
//Kijk of $a gelijk is aan $b
if ($a == $b)
{
echo $a . ' is gelijk aan ' . $b . '!';
}
//Als $a niet gelijk is aan $b, kijk of $a misschien hoger is dan $b
elseif ($a > $b)
{
echo $a . ' is groter dan ' . $b;
}
//Als $a niet hoger is dan $b EN niet hetzelfde is als $b moet $a wel kleiner zijn dan $b
else
{
echo $a . ' is kleiner dan ' . $b;
}
?>
</source>}}
Onder de condities valt dus $a == $b en $a > $b in dit voorbeeld.
Tip: probeer de waardes van $a en $b ook eens aan te passen, zodat je de effecten van de condities kan zien.
 
Typecontrole hierboven in de tabel geeft aan dat niet alleen de inhoud van de twee vergeleken variabelen van belang is, maar ook het type. In PHP heeft bijvoorbeeld de constante FALSE de waarde 0 en TRUE de waarde 1. Zou je dan dit doen:
{{code
|Taal=PHP
|Titel=
|Code=
<source lang=php>
if(TRUE==1)
{
echo "JA";
}
else
{
echo "NEE";
}
</source>}}
 
Dan zou er "JA" uitkomen. Doe je het echter met de operatoren die letten op de types van de variabelen, dan komt er "NEE" uit:
{{code
|Taal=PHP
|Titel=
|Code=
<source lang=php>
if(TRUE===1)
{
echo "JA";
}
else
{
echo "NEE";
}
</source>}}
 
==== Switch-statement ====
Als je voor maar een variabele hoeft te kijken aan welke waarde hij/zij voldoet kun je met if en elseif's gaan werken, maar dit levert meestal rommelige code op, die meestal wat moeilijker te volgen is. Daar is het switch-statement voor.
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
//Weer een foute variabele naam.
$a = 9;
// Voorbeeld om switch werking aan te geven.
switch ($a)
{
case 1:
echo $a . ' is gelijk aan 1';
break;
case 2:
echo $a . ' is gelijk aan 2';
break;
case 9:
echo $a . ' is gelijk aan 9';
break;
default:
echo $a . 'is niet gelijk aan 1, 2 of 9';
}
?>
</source>}}
Zoals je ziet wordt een switch-statement vaak gebruikt om te kijken of een variabele gelijk is aan een waarde. Je kan ook condities gebruiken in de case statements maar het is beter om dat te voorkomen en in zo'n geval een if - else if - else constructie te gebruiken.
Let er ook op dat je telkens als je klaar bent in een 'case' dat je dan een break; neerzet om te voorkomen dat er door wordt gegaan met de volgende 'case'. Bij een "default" hoeft over het algemeen geen "break", omdat deze toch als laatste staat.
 
Door slim om te gaan met je gebruikte break statements en een kleine codeaanpassing kan je de bovenstaande switch statement ook als volgt implementeren:
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$a = 9;
switch ($a)
{
case 1:
case 2:
case 9:
echo $a . ' is gelijk aan '. $a;
break;
default:
echo $a . ' is niet gelijk aan 1, 2 of 9';
}
?>
</source>}}
 
==== De als-dan expressie ====
De als-dan expressie is een iets moeilijker leesbare versie van het normale if-statement, deze wordt meestal gebruikt om snel verschillende waarden aan een variabele toe te kennen, een voorbeeld hiervan is:
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$a = 1;
$b = $a == 1 ? $a . ' is gelijk aan 1' : $a . ' is niet gelijk aan 1';
echo $b;
?>
</source>}}
Hier staat dus hetzelfde als
{{code
|Taal=PHP
|Titel=
|Code=<source lang=php>
<?php
$a = 1;
if ($a == 1)
{
$b = "$a is gelijk aan 1";
}
else
{
$b = "$a is niet gelijk aan 1";
}
echo $b;
?>
</source>}}
 
=== Herhalingen ===
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.