În forma ei standard, funcţia SWITCH oferă alternanţe în funcţie de condiţia stabilită, asemănându-se mult cu IF. Avantajul principal pare a fi că structura este mai uşor de analizat.
|
1 2 3 4 5 6 7 8 9 10 11 |
$variab="ceva"; SWITCH($variab) { CASE sit_1: // dacă $variab îndeplineşte condiţia sit_1 ECHO... sau $val=...; BREAK; CASE sit_2: // dacă $variab îndeplineşte condiţia sit_2 ECHO... sau $val=...; BREAK; DEFAULT: // dacă $variab nu îndeplineşte condiţiile anterioare ECHO... sau $val=...; } |
Echivalenţa prin IF
După cum am menţionat, echivalentul poate fi redat cu ajutorul lui IF.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
IF ($variab == sit_1) { // dacă $variab îndeplineşte condiţia sit_1 ECHO... sau $val=...; } ELSEIF ($variab == sit_2) { // dacă $variab îndeplineşte condiţia sit_2 ECHO... sau $val=...; } ELSE { // dacă $variab nu îndeplineşte condiţiile anterioare ECHO... sau $val=...; } |
SWITCH cu clauza AND sau OR
|
1 2 3 4 5 6 7 8 |
$variab = 1; SWITCH (TRUE) { CASE ($variab == 1 || $variab == 2): ECHO... sau $val=...; BREAK; } <span class="crayon-k ">ECHO</span> <span class="crayon-v">$val</span><span class="crayon-sy">;</span> <span class="crayon-c">// if we used the second option for the result (not ECHO)</span> |
Desigur, dacă este necesară îndeplinirea a două condiţii cumulative (AND), se va pune $var > 10 && $var <= 20. Pentru switch cu îndeplinirea alternativă a condiţiei (OR), se poate folosi şi exemplul de mai jos.
|
1 2 3 4 5 6 7 8 |
SWITCH($variab) { CASE 1: CASE 2: ECHO... sau $val=...; BREAK; } <span class="crayon-k ">ECHO</span> <span class="crayon-v">$val</span><span class="crayon-sy">;</span> <span class="crayon-c">// if we used the second option for the result (not ECHO)</span> |
Echivalenţa IF pentru ternary form
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // Formă ternară return $recenzie ? FALSE : $argum; // Alternativa cu IF IF ($recenzie) { return FALSE; // True argument } ELSE { return $argum; // False argument }?> |

