Visualizzazione dei risultati da 1 a 8 su 8

Discussione: annidare switch

  1. #1
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    annidare switch

    voglio definire la $nome come femminile o maschile.


    <?php
    $nome = "mangiare";
    $lunghezza = strlen($nome);
    $lettera = substr($nome,$lunghezza -1);
    $lettere = substr($nome,$lunghezza -3);
    switch($lettera)
    {
    case "a":
    case "e":

    switch($lettere)
    {
    case "are":
    $tipo = "probabilmente è un verbo";
    break;
    }
    $tipo = "femminile";
    break;
    case "o":
    default:
    $tipo = default:
    $tipo = "indeterminabile";
    }
    print("il nome inserito è di $tipo");
    ?>


    nel caso di maschile e femminile è ok funziona.
    ma questo script riportato su perchè non verificha la condizione per cui se è "are" $tipo = "probabilmente è un verbo";

    ringrazio per l'attenzione.

  2. #2

  3. #3
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    ma questa tua risposta

    ormai quasi automatica è frutto di un copiaincolla?

  4. #4
    Se lo fosse non conterrebbe la risposta al tuo problema.

  5. #5
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    ok grazie


  6. #6
    Gli switch mi sembrano corretti, se non passa le condizioni (case "..) sicuramente è il contenuto delle variabili ad essere sbagliato...

    $lettera = substr($nome,$lunghezza -1);
    $lettere = substr($nome,$lunghezza -3);

    escludendo il disastro psicologico che hai fatto qui:

    case "o":
    default:
    $tipo = default:
    $tipo = "indeterminabile";

    Puoi tranquillamente farlo così: (si, sostituisci queste 4 righe a queste

    default:
    $tipo = "indeterminabile";

    Vedi gli output di $lettera e $lettere per capire se i valori che escono sono quelli che ti aspetti..

    Altra cosa, per come hai fatto il sistema,

    sciare è DIVERSO da SCIARE, quindi il primo are ti genera la condizione, la seconda no, essendo maiuscola..

    EDIT: lascio il messaggio originale per correttezza, ma ha ragione filippo, perchè nello switch dove controlli ARE, fai il break dello switch interno, ma poi avviene che tipo, assume il valore di femmina in quanto non lo fai uscire dallo switch... dovresti fare così:

    $tipo = "femmina";
    switch ($lettere)
    {
    case 'are':
    $tipo = "cicciolinaporno";
    break;
    }
    break;

    Così solo se entra nel case 'are' ti cambia il valore di $tipo...


    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  7. #7
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    si scusa l'ho scritto un pò di fretta

    ti ringrazio per i suggerimenti.

  8. #8
    rileggi il mio post, in quanto l'ho modificato per una mia disattenzione

    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.