Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Airfry
    Registrato dal
    Jan 2003
    Messaggi
    106

    controllo If sulla stessa variabile e risultato inaspettato

    Ciao A tutti,
    ho bisogno che qualcuno mi aiuti a capire dove sbaglio perch� mi sembra di essere rimbambito di colpo.
    Sto realizzando un controllo su una variabile su cui adottare un comportamento successivo.
    Sinteticamente il fine � questo: devo applicare un costo di trasporto se i cap sono DIVERSI da una lista.

    scrivo questo:
    Codice PHP:
    $cap 91101;
    if (
    $cap != 91100 || $cap != 92200) {    
    $costo 0;
    } else {
    $costo 20;
    }

    echo 
    $costo
    mi restituisce ZERO
    Il punto � che mi restituisce ZERO anche se imposto $cap= 91100 o 92200
    Qualsiasi variabile uguale eo diversa dalla lista da sempre ZERO

    Se la faccio al contrario
    Codice PHP:

    $cap 
    91100;
    if (
    $cap == 91100 || $cap == 92200) {
    $costo 20;
    } else {
    $costo 0;
    }

    echo 
    $costo
    cos� funziona e restituisce valori esatti al variare di $cap

    Io vorrei escludere alcuni cap per non pasticciare con altre variabili che prelevo a monte in altre funzioni, ma mi fa impazzire... a prescindere che le cose mi piace capirle e non farle funzionare per botta di culo
    == uguale
    != diverso

    sapete dirmi dove sbaglio?
    Grazie
    Lo spartito della vita
    è un insieme di note.
    Ognuno è artefice della propria armonia.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    La condizione OR passa dal momento in cui almeno una delle condizioni è verificata. Se $cap = 91100 allora è diverso di 92200 e la condizione si verifica.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nella condizione dovresti scrivere if ($cap != 91100 && $cap != 92200)
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    Codice PHP:
    $cap 91101;
    if (
    $cap != 91100 || $cap != 92200) {    
    $costo 0;
    } else {
    $costo 20;

    "se 91101 non è uguale a 91100 assegna 0 altrimenti assegna 20". così continua se oltre alla semplice espressione aggiungi "se 91101 non uguale a 92200" continuerà ad assegnare 0
    [PHP]

  5. #5
    Utente di HTML.it L'avatar di Airfry
    Registrato dal
    Jan 2003
    Messaggi
    106
    Quote Originariamente inviata da badaze Visualizza il messaggio
    La condizione OR passa dal momento in cui almeno una delle condizioni � verificata. Se $cap = 91100 allora � diverso di 92200 e la condizione si verifica.
    Certo Badaze,hai ragione.
    Il punto che non mi spiego � che se scrivo 95000 o 91101 (a caso) che non sono nei controlli, il risultato non cambia... Non so se mi sono spiegato. Se metto 91100 o 92200 si verifica. Se metto 91111 o 92222 si verifica lo stesso... Con OR funziona solo se utilizzo un confronto == e non !=
    Lo spartito della vita
    è un insieme di note.
    Ognuno è artefice della propria armonia.

  6. #6
    Utente di HTML.it L'avatar di Airfry
    Registrato dal
    Jan 2003
    Messaggi
    106
    Quote Originariamente inviata da Airfry Visualizza il messaggio
    Certo Badaze,hai ragione.
    Il punto che non mi spiego � che se scrivo 95000 o 91101 (a caso) che non sono nei controlli, il risultato non cambia... Non so se mi sono spiegato. Se metto 91100 o 92200 si verifica. Se metto 91111 o 92222 si verifica lo stesso... Con OR funziona solo se utilizzo un confronto == e non !=
    scusa ma quando ho risposto non avevo letto gli altri post.
    mi ci applico subito. Grazie
    Lo spartito della vita
    è un insieme di note.
    Ognuno è artefice della propria armonia.

  7. #7
    Utente di HTML.it L'avatar di Airfry
    Registrato dal
    Jan 2003
    Messaggi
    106
    TTCC: anche io facevo lo stesso ragionamento e per questo che vado in casino. Se provi però anche a numero uguale da ZERO. Ho capito i meccanismo di concatenare i controlli con OR in questa stringa.
    Anche se si verificava una condizione, l'altra che era diversa l'altra mi assegnava 0... una falsava l'altra

    AND! dovevo usare AND!!! Ho usato male ||
    Badaze: Un grazie sincero, ho capito.
    Lo spartito della vita
    è un insieme di note.
    Ognuno è artefice della propria armonia.

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.