Complexere controle

Hiervoor hebben we de eerste stappen gezet met controle structuren in PHP. Daarmee kun je afhankelijk van de input de computer de uitkomst laten bepalen van je stappenplan. Dit kan uiteraard zo complex als je zelf wilt. Om je gereedschapskist verder uit te breiden, zetten we hier een stap verder in de mogelijkheden om met PHP beslissingen te nemen.

<?php
$getal = 10;
$getal2 = 7;

if ($getal > $getal2){ 
echo $getal." is groter dan ".$getal2;
} elseif ($getal < $getal2){
echo $getal." is kleiner dan ".$getal2;
} else {
echo $getal." is gelijk aan ".$getal2; 
}
?>

Uitleg code

In dit voorbeeld check je aan de hand van getallen of deze groter dan, kleiner dan of gelijk aan elkaar is. Daarbij loopt PHP de code keurig af zoals jij deze hebt opgegeven. De eerste check is of $getal groter is dan $getal2. De tweede stap als de uitkomst false is, dan checkt de computer of $getal kleiner is dan $getal2. Is deze uitkomst ook false, dan volgt de laatste uitkomst en dat is dat beide variabelen gelijk zijn aan elkaar. Let op dat PHP de code pas uitvoert als de uitkomst van je code tussen ( …) true is, anders negeert PHP de code in het if…statement en schakelt door naar de volgende opdracht.

Het if (…)…elseif(…)…else (…) stament geeft je de mogelijkheid om meerdere keren te checken of aan een bepaalde voorwaarde is voldaan voordat je bij de laatste optie komt. Dus als het eerste if (…) false is, dan checkt PHP of het tweede elseif (…) true of false is. Is de tweede opdracht ook false, dan gaat PHP door naar de volgende stap. In theorie kan je deze stappen eindeloos laten doorlopen. Maar zodra PHP een stap tegenkomt die true is, dan stopt de uitvoering van het script.

$korting = 0;
if (count($boodschapmand) >= 10) {
    $korting = $subtotal * .3;
} elseif (count($boodschapmand) >= 5) {
    $korting = $subtotal * .15
}

Bovenstaand script laat zien dat als er 10 producten of meer in het mandje zitten, de korting 30 procent bedraagt. Is dit het geval? Dan stopt PHP het script en rekent verder met een $korting van 30 procent. Zitten er minder dan 10 producten maar zitten er 5 producten of meer in het mandje, dan is de eerste stap false geweest en voert PHP de tweede elseif (…) uit. De $korting bedraagt nu 15 procent. Kortom, op deze manier kun je steeds grotere structuren maken om je programma de goede kant uit te krijgen.

Zoals zo vaak geldt hier ook dat hoe moeilijker de uit te voeren controle is, de manier van werken ook van groter belang is. Om je basis verder uit te werken, gaan we hierna verder met het switch (…) statement.