Control Flow Details
Switch Statements
A switch compares one value with several cases.
switch case
Each `case` handles one matching value, and `default` handles the fallback.
Switch Statements
switch_statement.php
Replay: real traced execution (multi-file project)
<?php
$code = 2;
$label = "";
$fee = 0;
switch ($code) {
case 1:
$label = "standard";
$fee = 5;
break;
case 2:
$label = "express";
$fee = 12;
break;
default:
$label = "manual";
$fee = 20;
break;
}
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
echo "fee=" . $fee . "\n";
<?php
$code = 1;
$label = "";
$fee = 0;
switch ($code) {
case 1:
$label = "standard";
$fee = 5;
break;
case 2:
$label = "express";
$fee = 12;
break;
default:
$label = "manual";
$fee = 20;
break;
}
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
echo "fee=" . $fee . "\n";
<?php
$code = 9;
$label = "";
$fee = 0;
switch ($code) {
case 1:
$label = "standard";
$fee = 5;
break;
case 2:
$label = "express";
$fee = 12;
break;
default:
$label = "manual";
$fee = 20;
break;
}
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
echo "fee=" . $fee . "\n";
$code ← 2, $label ← (empty), $fee ← 0
1<?php2$code→ 2 = 2; //@code=1, 93$label→ (empty) = "";4$fee→ 0 = 0;echo "code=" . $code . " ";
21echo "code=" . $code2 . "\n";22echo "label=" . $labelexpress . "\n";23echo "fee=" . $fee12 . "\n";outputcode=2 label=express fee=12
$code ← 1, $label ← (empty), $fee ← 0
1<?php2$code→ 1 = 1;3$label→ (empty) = "";4$fee→ 0 = 0;echo "code=" . $code . " ";
21echo "code=" . $code1 . "\n";22echo "label=" . $labelstandard . "\n";23echo "fee=" . $fee5 . "\n";outputcode=1 label=standard fee=5
$code ← 9, $label ← (empty), $fee ← 0
1<?php2$code→ 9 = 9;3$label→ (empty) = "";4$fee→ 0 = 0;echo "code=" . $code . " ";
21echo "code=" . $code9 . "\n";22echo "label=" . $labelmanual . "\n";23echo "fee=" . $fee20 . "\n";outputcode=9 label=manual fee=20
Match the Shipping Code
$codestarts at2.switchchecks the matchingcase.case 2runs.- The label becomes
expressand the fee becomes12. | Code | Case | Label | Fee | | --- | --- | --- | --- | |1|case 1|standard|5| |2|case 2|express|12| |9|default|manual|20|
Exercise: switch_statement.php
Use switch to map a shipping code to a label and fee