SWITCH PHP

Les instruccions “if… else if… else if” permeten resoldre pràcticament totes les decisions que s’han de prendre en programació, però trobem casos amb que volem avaluar condicions amb una estructura per la que requerim d’una instrucció alternativa: switch.

Suposem una avaluació d’aquest tipus:

if ($variable == Valor1) {
... sentencies;
} else if( $variable == Valor2) {
... sentencies;
} else if ($variable == Valor3) {
... sentencies;
} else {
... sentencies;
}

Es tracta d’un cas on tenim varies alternatives per a realitzar una acció determinada segons el valor pres per una variable. Per aquests casos la majoria dels llenguatges de programació inclouen una instrucció que permet “seleccionar” entre els possibles valors d’una variable: la instrucció switch.

Aquesta instrucció és una forma d’expressió d’un agrupament múltiple d’instruccions “if … else”. El seu ús no pot considerar-se, per tant, estrictament necessari, ja que sempre es podrà substituir per l’ús d’if. No obstant, de vegades resulta útil per tal d’introduir eficiència i major claredat en el codi.

ESTRUCTURA GENERAL D’UNA EXPRESSIÓ SWITCH

La sintaxis serà (normalment serà per avaluar el contingut d’una variable, però pot ser una operació matemàtica, una expressió booleana, etc.):

switch {
        case valor1:
        instruccions;
        break;
 
        case valor2:
        instruccions;
        break;
        .
        .
        .
        default:
        sentencies;
        break;
 }
switch {
        case valor1:
        case valor2:
        case valor3:
                    instruccions;
                    break;
 
        case valor4:
                    instruccions;
                    break;
        .
        .
        .
        default:
                    sentencies;
                    break;
 }

Break és opcional (però generalment és recomanable) i provoca que, un cop ja s’ha trobat una coincidència, acabi l’avaluació dels casos –provoca un salt passant el control del programa o flux d’execució a la instrucció immediata següent fora del switch). Sinó s’inclou, s’avaluaria la resta de casos (executant-se si fossin certs). De no incloure’s el break, podria produir-se que s’executin dos o més casos.

La clàusula default és opcional i representa les instruccions que s’executaran en cas de que no es verifiqui cap dels casos avaluats. L’últim break dins d’un switch també és opcional, però l’inclourem per tal de ser metòdics.

Es permet avaluar tant números com cadenes de text o valors booleans. Switch només permet avaluar valors concrets de l’expressió: no permet avaluar intervals ni expressions compostes.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.