Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] Condizione php, confronto con diverse variabili

  1. #1
    Guest

    Predefinito [PHP] Condizione php, confronto con diverse variabili

    Il titolo forse non è esplicito, ma è un problema abbastanza grande e non so esporlo

    Allora, io vorrei fare una cosa così:
    Codice PHP:
    if(($var1 || $var2 || $var3) != 3))
    {
    #Statement
    }
    Se una di quelle di tre variabili è diversa da 3 eseguire il codice della condizione.

    Questo per non scrivere:
    Codice PHP:
    if(($var1 != 3) || ($var2 != 3) || ($var3 != 3))
    {
    #Statement
    }
    Ho provato e sembra funzionare, è giusta come sintassi? Non ho trovato nulla in internet eprchè non saprei come cercare

  2. #2
    Guest

    Predefinito

    Perchè nell'espèressione dico OPPURE ... OPPURE ... senza indicare in base a cosa devono essere diverse.

    Cioè, il mio è un dubbio, sembra funzionare, non avrò scoperto l'acqua calda, ma vorrei che questo dubbio mi si togliesse, perchè facendo così mi libererei di un sacco di righe di codice

  3. #3
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    No è completamente sbagliata. Quella parentesi torna il valore quella prima variabile $var1, $var2, $var3 che non sia 0 e lo usa per il confronto. Devi mettere tutto in OR o al limite usare la funzione in_array.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  4. #4
    Guest

    Predefinito

    Quindi, se io ho questo codice:
    Codice PHP:
    $sql = 'SELECT * FROM ' . CHALLENGE_TABLE . '
    WHERE id = '
    . $id_challenge;
    if (!(
    $result = $db->sql_query($sql)))
    {
    message_die(GENERAL_ERROR, 'Could not read id challenge.', '', __LINE__, __FILE__, $sql);
    }
    $row = $db->sql_fetchrow($result);

    $challenger_id = $row['id_challenger'];
    $challenging_id = $row['id_challenging'];

    $state_challenger_image = $row['state_image_challenger'];
    $state_challenging_image = $row['state_image_challenging'];

    if((
    $challenger_id || $challenging_id) != $userdata['user_id'])
    {
    message_die(GENERAL_MESSAGE, $lang['Not_Auth_View'] . '<br />' .
    sprintf('Clicca %sQUI%s per tornare alla sfida', '<a href="' . append_sid(U_CHALLENGE . '?id=' . $id_challenge . '&mode=view_challenge') . '">', '</a>'));

    }
    Dovrebbe diventare:
    Codice PHP:
    $sql = 'SELECT * FROM ' . CHALLENGE_TABLE . '
    WHERE id = '
    . $id_challenge;
    if (!(
    $result = $db->sql_query($sql)))
    {
    message_die(GENERAL_ERROR, 'Could not read id challenge.', '', __LINE__, __FILE__, $sql);
    }
    $row = $db->sql_fetchrow($result);

    $challenger_id = $row['id_challenger'];
    $challenging_id = $row['id_challenging'];

    $state_challenger_image = $row['state_image_challenger'];
    $state_challenging_image = $row['state_image_challenging'];

    if((
    $challenger_id != $userdata['user_id']) || ($challenging_id != $userdata['user_id']))
    {
    message_die(GENERAL_MESSAGE, $lang['Not_Auth_View'] . '<br />' .
    sprintf('Clicca %sQUI%s per tornare alla sfida', '<a href="' . append_sid(U_CHALLENGE . '?id=' . $id_challenge . '&mode=view_challenge') . '">', '</a>'));
    }
    Giusto?

  5. #5
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Giusto?
    Bravo


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    ehm... 9+0+0... la tua condizione e' "una e solo una delle tre variabili e' diversa da tre"
    Ultima modifica di dreadnaut : 09-04-2009 alle ore 19.52.40

  7. #7
    Guest

    Predefinito

    hai ragione :D... sorry...

  8. #8
    Guest

    Predefinito

    Grazie per le risposte, dovrò tenermi tutte queste righe allora


  9. #9
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Grazie per le risposte, dovrò tenermi tutte queste righe allora

    Se sono due sì, se sono parecchie è comodo adottare qualche altra soluzione, qualcosa tipo:

    Codice PHP:
    function valoriuguali($array,$valore){
    //restituisce TRUE se tutti gli elementi di $array corrispondono a $valore, FALSE altrimenti
    return (count(array_keys($array,3)) == count($array));
    }
    Codice PHP:
    if(!valoriuguali(array($var1,$var2,...,$varN),3))
    // almeno una delle variabili contiene un valore diverso da 3
    Ciao!

    P.S: Al limite sarà utile a qualcun'altro
    Ultima modifica di programmazioned : 09-04-2009 alle ore 21.42.03

Regole di scrittura

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