Instructiuni conditionale switch

Scrierea instructiunilor switch, break si default

In cazul in care vrem sa comparam valoarea unei singure variabile cu o succesiune de valori, in locul instructiunii "if" putem folosi instructiunea switch:
De exemplu, sa presupunem ca valoarea variabilei $numar este l, 2 sau 3, reprezentând respectiv dimensiunile "mica", "medie" si "mare". Iata un mic script care afiseaza dimensiunile asociate valorilor variabilei $numar, folosind functia switch alaturi de break si default care vor fi explicate mai jos:

<?php
switch($numar) {
      case(1):
          echo "mic";
          break;
      case(2):
          echo "mediu";
          break;
      case(3):
          echo "mare";
          break;
      default:
          echo "Acesta nu este un cod valabil";
}
?>
- Actiunea unei instructiuni switch este determinata de valoarea unei expresii întregi, nu de valoarea unei expresii conditionale. Numele variabilei este dat între parantezele care urmeaza dupa cuvântul cheie switch. Acoladele delimiteaza o serie de instructiuni case si o instructiune default optionala, fiecare dintre instructiunile cuprinse între acolade putând avea instructiuni asociate.
Când este executata, instructiunea switch încearca sa stabileasca o identitate între valoarea variabilei sale si valoarea asociata unei instructiuni case. Se vor executa instructiunile asociate primei instructiuni "case" pentru care identitatea respectiva este valabila.
Daca valoarea variabilei din instructiunea switch nu corespunde nici uneia din valorile asociate instructiunilor case, se vor executa instructiunile asociate instructiunii default, daca exista o asemenea instructiune (ne este obligatorie).
Un procedeu de programare indicat consta în aceea ca fiecare instructiune case din cadrul unei instructiuni switch sa se încheie cu o instructiune break.
; Instructiunea break determina încheierea executiei instructiunii switch, sare peste "case-urile" ramase si se executa codurile care mai sunt (daca exista) dupa "switch". În absenta instructiunii "break", executia trece la urmatoarea instructiune "case" sau "default", fapt nedorit în majoritatea cazurilor.

• Nu este necesar sa folositi numere întregi consecutive în instructiunile case ale unei instructiuni switch. Daca preferati, puteti folosi numere întregi non-consecutive, numere cu virgula sau siruri. Valoarea de la "case" se poate adauga si fara paranteze, separata prin spatiu.
- Exemplu:
<?php
$site = 'marplo';
switch($site) {
  case 1:
    echo 'php.net';
    break;
  case 'coursesweb':
    echo 'http://coursesweb.net';
    break;
  case 'marplo':
    echo 'www.marplo.net';
    break;
  default: echo 'google.com';
}
?>

2. Operatorul ? :

Operatorul conditional ?:, denumit uneori "operator ternar" sau "operator întrebare-doua puncte", constituie o alta modalitate de a scrie decizii în PHP.
Acest operator formeaza o expresie care se poate folosi în multe contexte PHP. Iata sintaxa de utilizare a acestuia:

expresie-conditionala ? valoare-TRUE : valoare-FALSE
Observati cum semnul întrebarii este separat de caracterul doua puncte prin valoarea valoare-TRUE.
Operatorul conditional îsi evalueaza expresia conditionala. Daca expresia este evaluata la valoarea TRUE, operatorul conditional returneaza valoarea valoare-TRUE; în caz contrar, returneaza valoarea valoare-FALSE.
De exemplu, sa luam în considerare urmatoarea instructiune de atribuire, care foloseste un operator conditional:
$a = ($b > $c) ? 10  : 20;
Aceasta instructiune de atribuire compara valorile variabilelor $b si $c. Daca valoarea variabilei $b este mai mare decât aceea a variabilei $c (adica TRUE), atunci variabilei $a îi este atribuita valoarea 10; în caz contrar, variabilei respective îi este atribuita valoarea 20.
Instructiuni conditionale if else <<-- Anterior --- Urmator -->> Instructiuni repetitive for si ...

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care meta tag se foloseste pentru scurta descriere a paginii?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 caractere ce descriu continutul paginii" />
Ce proprietate CSS opreste efectul dat de "float"?
clear text-align position
#some_id {
  clear: both;
}
Clic pe metoda ce creaza un array cu toate elementele din pagina cu un anumit nume de tag.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicati functia PHP ce returneaza numarul de elemente dintr-un array.
is_array() count() strlen()
$arr = array(7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "I live (happy)".
happly happily hapily
I live happily.
- Traiesc fericit (in mod fericit).
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "Vivo (feliz)".
felizamente felizmente felices
Vivo felizmente.
- Traiesc fericit (cu fericire).
Instructiuni conditionale switch - Tutorial PHP