• Bannato User Attivo •

    if espressioni con più constanti

    Cercavo un modo per fare questo

    [PHP]$cod = "milano";
    if ($cod == 'roma' or 'milano' or 'Genova' or 'napoli'){
    //espressione verificata
    }else{
    //espressione non verificata
    }[/PHP]

    ma ovviamente messo cosi non mi funziona

    funziona però cosi

    [php]$local = "milano";
    $località = "roma%milano%genova";
    $località = explode("%", $località);
    $countlocal = count($località);
    for ($i = 1; $i <= $countlocal; $i++) {
    if ($local == "$località*"){
    $conf = 'on';
    }else{
    $conf = 'off';
    }
    }
    if ($conf == 'on'){
    //espressione positiva
    }else{
    //espressione negativa
    }[/php]

    però è un codice troppo lungo

    non c'è un modo veloce (con poco codice php) per verificare se $cod corrisponde a quelle città?

    ciauz 😉


  • ModSenior •

    Ciao Alessiofbt,

    La sintassi corretta è la seguente:
    [php]
    $cod = "milano";
    if ($cod == 'roma' || $cod == 'milano' || $cod == 'Genova' || $cod == 'napoli')
    {
    //espressione verificata
    }
    else
    {
    //espressione non verificata
    }
    [/php]


  • Bannato User Attivo •

    grazie e io che continuavo ad usare and e or 😄


  • ModSenior •

    Puoi anche usare OR, è indifferente, però non riscrivevi $variabile == 'valore'.


  • User Attivo •

    Una sola cosetta, al php ogni tanto non va a genio il confronto di stringhe in questo modo, io personalmente ho avuto problemi facendo così tempo fa, potrebbero esser cambiate le cose, ti posto un altro modo se per caso ti dà problemi questo confronto.
    [php]
    $confronto=strcmp($stringa1,$stringa2);
    [/php]Restituisce 0 se sono uguali (se invece $stringa1 è maggiore di $stringa2 restituisce un valore maggiore di 0, viceversa restituisce un valore minore di 0).