• 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).