Treci la conținutul principal

Instrucțiunea switch în PHP

Când o singură valoare poate duce la mai multe acțiuni diferite, o instrucțiune switch le ține frumos organizate. PHP o folosește ca să aleagă un singur bloc de cod dintre mai multe și să îl ruleze.

Sintaxa switch

O instrucțiune switch este structurată așa:

index.php
<?php
switch (expression) {
  case label1:
    //code block
    break;
  case label2:
    //code block
    break;
  case label3:
    //code block
    break;
  default:
    //code block
}
?>

Cum funcționează

PHP calculează expresia o singură dată, apoi compară rezultatul, pe rând, cu valoarea fiecărui case. Când găsește o potrivire, rulează codul pentru acel caz. Pune un break la sfârșitul fiecărui bloc, pentru că fără el PHP ar continua în cazul următor. Dacă nu se potrivește nimic, rulează în schimb blocul default.

Instrucțiunea switch cu culori

În funcție de ce conține $favcolor, se afișează un mesaj diferit. Aici are valoarea „red”:

Prompt
Scrieți un script PHP care setează o variabilă $favcolor la "red". Folosiți o instrucțiune switch pentru a verifica valoarea lui $favcolor. Dacă este "red", afișați „Culoarea ta preferată este red!”. Dacă este "blue", afișați „Culoarea ta preferată este blue!”. Dacă este "green", afișați „Culoarea ta preferată este green!”. Adăugați un caz default care afișează „Culoarea ta preferată nu este nici red, nici blue, nici green!”.
Ieșire: script PHP

Cuvântul cheie default

Cuvântul cheie default marchează codul folosit când niciunul dintre cazuri nu se potrivește. Gândește-te la el ca la else-ul de la finalul unei instrucțiuni if...elseif...else.

switch cu ziua săptămânii

Acest switch transformă numărul zilei returnat de date("w") în numele zilei de azi:

Prompt
Scrieți un script PHP care setează o variabilă $d la numărul zilei curente a săptămânii folosind date("w"). Folosiți o instrucțiune switch cu cazuri pentru fiecare zi (0=duminică până la 6=sâmbătă), care afișează numele zilei. Nu este nevoie de un caz default, deoarece toate cele șapte zile sunt acoperite.
Ieșire: script PHP

Blocuri de cod comune

Mai multe cazuri pot folosi în comun același bloc de cod. Așază-le direct unul sub altul și omite break dintre ele. Această tehnică este numită uneori fall-through.

Fall-through în switch

Cazurile "red" și "blue" sunt așezate unul sub altul, așa că oricare dintre valori duce la același mesaj:

Prompt
Scrieți un script PHP care setează $favcolor la "red". Creați o instrucțiune switch în care cazul "red" NU are o instrucțiune break, astfel încât execuția trece mai departe la cazul "blue". Cazul "blue" afișează „Culoarea ta preferată este fie red, fie blue!” și apoi face break.
Ieșire: script PHP