Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    tanti operatori booleani

    Ho la necessità di creare una codizione if che confronti 4 coppie di variabili. La prima della coppia deve essere sempre == 1, la seconda deve essere sempre !=''.

    Se la prima variabile è ==1 e la seconda è =='' allora devo avere FALSE e andare all' ELSE, se la prima variabile è !=1 e la seconda è =='' va bene così e devo avere TRUE quindi stare nella condizione IF, ma se la prima variabile è !=1 e la seconda è =='' devo avere ancora TRUE e stare nella condizione.

    io ho scritto

    if ( ( (VAR1 == 1) && (var1 != '') ) || ( (VAR2 == 1) && (var2 != '') ) || ( (VAR3 == 1) && (var3 != '') ) || ( (VAR4 == 1) && (var4 != '') ) )
    {
    STAI NELLA CONDIZIONE CIOE' sono tutte vere, ma mi servirebbe che se fosse falsa la prima della coppia andrebbe bene che fosse vera la seconda
    }
    else
    {
    FACCIO ALTRO PERCHE' o il secondo membro di una coppia è =='' in contemporanea al fatto che il primo membro è ==1)
    }

    Inutile dire che non funziona
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Credo di aver risolto così
    Codice PHP:
    $check TRUE
    for($x=1;$x<=4;$x++){
                if (${
    "VAR".$x} == 1){
                    if (${
    "var".$x} == ''){
                        
    $check FALSE;
                    }
                }
            }
    if (
    $check == TRUE){
         
    // è tutto ok
    }else{
        
    // qualcosa non va

    funziona... all' apparenza
    che dite?
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    codice:
    if ( ( (VAR1 == 1) && (var1 != '')
    che senso ha fare questo confronto? se var1==1 è ovvio che var1 è diverso da '' ...

  4. #4
    ho usato le maiuscole per VAR1 e le minuscole per var1 sono 2 variabili diverse, che vanno confrontate a coppie, era solo per far capire questo, in realtà hanno nomi diversi.

    Vanno confrontate coppie ordinate di variabili, per cui

    Antonio1 deve essere ==1 mentre Giovanni1 è valorizzata
    Antonio2 deve essere ==1 mentre Giovanni2 è valorizzata

    e così via fino a 4

    L'uso di maiuscole e minuscole per VAR e var ha tratto in inganno.
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    con questo codice che poi dovrai adattare alle tue esignze .. funziona
    Codice PHP:
    /* assegnazione dinamica delle variabili, convenzione nome variabile:
    varCICLO1 -> equivale a VAR1 dell'esempio
    varCICLO2 -> equivale a var1 dell'esempio
    */
    for($x=$x<=$x++){
        ${
    'var'.$x.'1'}=1;
        
    /* se decommentato, torna valido
        ${'var'.$x.'2'}='a';
        */
        /* se decommentato, torna NON valido -> assegna a var12 il valore '', a var22-var32-var42 il valore 'a'*/
        
    ${'var'.$x.'2'}= $x=='':'a';
    }

    $valido true;
    for(
    $x=$x<=$x++){
        
    $valido &= ${'var'.$x.'1'}==&& ${'var'.$x.'2'}!='';
    }

    echo (
    $valido "VALIDO""NON valido"); 
    se ho letto bene quello che ti serve, deve tornare true solo se tutte le coppie sono verificate, ovvero tutte le VARx devono essere 1 e tutte le varX devono essere ''
    Se ne deve essere verificata solo una, va impostata a false la var $valido e nel ciclo for anzichè &= va messo |=

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.