Visualizzazione risultati 1 fino 10 di 10

Discussione: Switch con case variabili

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito Switch con case variabili

    Salve a tutti ho un dubbio sul comando switch...
    la sintassi è:

    Codice PHP:
    switch ($...){
    case
    "":
    ...
    ...
    ...
    break;
    case
    "":
    ...
    ...
    ...
    break;
    default:
    ...
    ...
    ...
    break;}
    il mio dubbio è: si può mettere come case una variabile?

    cioè....io ho 1 variabile da paragonare ad altre....

    ad esempio
    $1 = "ciao"
    $2= "dfs"
    $3= "sfs"

    e queste devono essere paragonate ad una variabile $4 che se sarà uguale a $1 mi darà un output, se sarà uguale a $2 un'altro e via così....

    ciò è fattibile? se si come?


    Fabio

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Sì, dopo il case puoi mettere un'espressione qualsiasi, quindi anche un riferimento ad una variabile.
    Solitamente però lo switch non si usa in questi casi, ma al suo posto si adoperano degli if.
    Probabilmente ciò è derivato dal fatto che in altri linguaggi come il C o il Java richiedono l'uso di espressioni costanti (il cui valore sia quindi noto al momento della compilazione).
    Ultima modifica di karl94 : 21-06-2014 alle ore 20.59.29

  3. #3
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Sì, dopo il case puoi mettere un'espressione qualsiasi, quindi anche un riferimento ad una variabile.
    Solitamente però lo switch non si usa in questi casi, ma al suo posto si adoperano degli if.
    Probabilmente ciò è derivato dal fatto che in altri linguaggi come il C o il Java richiedono l'uso di espressioni costanti (il cui valore sia quindi noto al momento della compilazione).
    io ho provato in diversi modi ma non ho mai ottenuto un risultato accettabile...puoi aiutarmi con il codice?
    Codice PHP:
    $ciao='echo $password_attivazione;';
    switch ($codice_sicurezza) {

    case "'".$ciao."'":
    echo "ciao";
    break;
    default: ?>
    <script type="text/javascript">
    window.alert("ATTENZIONE\nCODICI NON CORRIPONDENTI!")
    </script>
    <?php
    break;
    }
    l'echo ciao è una cosa che ho messo di prova

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Scritto così, l'istruzione echo "ciao"; viene eseguita solo nel caso in cui la variabile $codice_sicurezza contenga la seguente stringa
    Codice:
    'echo $password_attivazione;'
    Esattamente, la variabile $password_attivazione non viene espansa.
    Quale risultato vuoi ottenere invece?

  5. #5
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    io devo fare in modo che: se la variabile $codice_sicurezza è uguale a $password_attivazione mi faccia la echo "ciao" (altre condizioni ) e di default mi faccia il windows allert

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    E allora nel case mettici solamente $password_attivazione, senza virgolette di alcun tipo.
    Ma perché non usare un if?

  7. #7
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    da qualche tempo non capisco il motivo solo qui su altervista gli if mi danno problemi ho provato a caricare le stesse pagine su altri host e problemi 0 qui....mi esegue sempre la prima "solozione" anche se in realtà non è verificata

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Di sicuro il problema non sono gli if, ma qualcos'altro. Potresti indicare un esempio?

  9. #9
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    attualmente gli ho cancellati tutti e trasformati in switch

    ma credo siano gli if perchè la stessa pagina (senza modifiche) caricata in altri host non da problemi....riscontrato numerose volte

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Ripeto: il problema probabilmente è altrove, su AlterVista migliaia di utenti usano sul proprio spazio script PHP, spesso non scritti per questa piattaforma e nessuno lamenta problemi riguardo il funzionamento dell'istruzione if.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •