Navigation:  Control structures >

switch

Previous pageReturn to chapter overviewNext page

Met if en elseif statements kun je allerlei voorwaarden testen maar soms werkt een switch sneller. Met switch wordt de waarde van een variabele getest en zodra er een overeenkomst is, wordt het programma afgebroken met break en hoeft er niet verder gezocht te worden. Als er niets wordt gevonden, is er altijd nog een default werking (als je die tenminste hebt ingesteld). Als voorbeeld nemen we de bloembollen opdracht van 4.86 uit het boek van Instruct. Er zijn verschillende besteldrempels waar verschillende prijzen bij horen. Prijzen en drempels worden vastgelegd in variabelen.

 

<?php

 

$prijs_1=1.50;

$prijs_2=1.35;

$prijs_3=1.15;

$prijs_4=0.90;

 

$drempel_1=10;

$drempel_2=100;

$drempel_3=250;

 

$bestelling=167;

 

switch($bestelling)

{

 case($bestelling>$drempel_3):

         $totaalprijs=$bestelling*$prijs_4;

         break;

 case($bestelling>$drempel_2):

         $totaalprijs=$bestelling*$prijs_3;

         break;

 case($bestelling>$drempel_1):

         $totaalprijs=$bestelling*$prijs_2;

         break;

 case($bestelling<$drempel_1):

         $totaalprijs=$bestelling*$prijs_1;

}

 

echo "<h1>Bestel nu uw bloembollen!</h1>";

echo "<img src=bloembollen.jpg align=right>";

echo "<table border=1>";

echo "<tr><th>Aantal bloembollen</th><th>Prijs per stuk</th></tr>";

echo "<tr><td>minder dan " . $drempel_1 . "</td><td>" . $prijs_1 . " euro</td></tr>"; 

echo "<tr><td>" . $drempel_1 . " tot " . $drempel_2 . "</td><td>" . $prijs_2 . " euro</td></tr>"; 

echo "<tr><td>" . ($drempel_2+1) . " tot " . $drempel_3 . "</td><td>" . $prijs_3 . " euro</td></tr>"; 

echo "<tr><td>meer dan " . $drempel_3 . "</td><td>" . $prijs_4 . " euro</td></tr>"; 

echo "</table>";

echo "<h2>U bestelde " . $bestelling . " bloembollen.</h2>";

echo "<h2>De totaalprijs is " . $totaalprijs . " euro.</h2>"

 

?>