PHP si MySql (Programator Web 2)

DOCUMENTATIE CURS

switch

Constructia switch este conditionala, si permite executia unui bloc de cod in functie de diferitele valori pe care le poate lua o variabila/expresie. Implicit, operatorul de comparare intre expresie si diferitele valori posibile este "=="



Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$a = 1;
switch ($a) { // $a este expresia ce poate lua diferite valori
 case 0:  // aici incepe prima ramura "case"
   echo 'a este 0';
   break; // aici se termina prima ramura "case"
 case 1:  
   echo 'a este 1';
   break;
 case 2:  
   echo 'a este 2';
   break;
 case 3:  
   echo 'a este 3';
   break;
 default: // $a nu are nici una din valorile de mai sus
   echo 'a are alta valoare';
} /// end switch
?>
1
a este 1




In general, dupa fiecare ramura "case" a switchului introducem instructiunile dorite si apoi cuvantul cheie break. Introducerea lui break limiteaza executia doar la acea portiune de cod (din acel case), altfel, ar trece mai departe si ar executa "case"-urile de dedesubt, indiferent ca exista egalitate cu acele valori sau nu. Alt cuvant cheie folosit este default folosit in cazul in care expresia comparata nu are nici una din valorile din case.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$sir = 'abc';
/* in acest exemplu, se potriveste doar egalitatea cu "abc"
dar pentru ca nu avem break de aici in jos, se executa si restul case-urilor
de cele mai multe ori punem break la sfarsitul fiecarui case.
dar uneori, vrem sa omitem breakul, special pentru un astfel de comportament
*/
switch ($sir) { // $a este expresia ce poate lua diferite valori
 case "a": 
   echo '$sir este a ';
 case "abc":  
   echo '$sir este abc ';
 case "b":  
   echo '$sir este b ';
 case "c":  
   echo '$sir este c ';
 default: // $a nu are nici una din valorile de mai sus
   echo '$sir are alta valoare ';
} /// end switch
?>
1
$sir este abc $sir este b $sir este c $sir are alta valoare


Se pot combina mai multe ramuri case intr-una singura:

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$hobby = 'inot';
switch ($hobby) {
 case "inot":
 case "volei":
 case "plaja":
   echo "Destinatie potrivita: mare";
   break;
 case "catarat":
 case "ski":
 case "sanie":
   echo "Destinatie potrivita: munte";
   break;
 default:
   echo "Alege o alta destinatie";
   break;
}
?>
1
Destinatie potrivita: mare


© 2006-2012 Crystal Mind Academy. All rights reserved