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

    operatore di confronto in variabile

    Salve a tutti,
    ho questo problema:
    assegno a una variabile un operatore di confronto
    $vValore1=1;
    $vValore2=2;
    $vConfronto='>=';


    e poi sfrutto le variabile all'interno di una condizione:
    if($vValore1.$vConfronto.$vValore2){
    echo("true");
    }else{
    echo("false");
    }


    mi sono accorto che la condizione restituisce sempre vero....
    mentre se sostituisco manualmente l'operatore di confronto in questa maniera il tutto funziona correttamente

    if($vValore1>=$vValore2){
    echo("true");
    }else{
    echo("false");
    }




    come posso risolvere? devo far capire alla condizione che la variabile vConfronto contiene un operatore...
    Grazie

  2. #2
    spiegati meglio?

    Nel tuo codice hai inserito l'operatore come se fosse una stringa, ora, hai fatto solamente un errore o la variabile $vConfronto viene inizializzata dal'utente e vuoi convertirla da stringa ad operatore?

  3. #3
    Originariamente inviato da dragon88
    spiegati meglio?

    Nel tuo codice hai inserito l'operatore come se fosse una stringa, ora, hai fatto solamente un errore o la variabile $vConfronto viene inizializzata dal'utente e vuoi convertirla da stringa ad operatore?


    vorrei che la variabile contenente l'operatore di confronto, fosse considerata appunto come operatore di confronto... affinchè la condisione funzioni correttamente...

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Hai 2 soluzioni
    1 eval
    2 switch oppure if

    mi spiego meglio

    1 eval :
    Codice PHP:
    $controllo  ">=" ;

    $val1 10 ;
    $val2 ;

    $ctrl $val1." ".$controllo." ".$val2 ;

    if( eval(
    $ctrl) )
      echo 
    "Yeppa" ;
    else
      echo 
    "Mannaggia al cane" 
    2switch
    Codice PHP:

    $controllo  
    ">=" ;

    $val1 10 ;
    $val2 ;
    $out false ;
    switch( 
    $controllo )
    {
           case 
    "==" :  $out $val1 == $val2 ; break;
           case 
    ">=" :  $out $val1 >= $val2 ; break;
           case 
    ">" :  $out $val1 >$val2 ; break;
           case 
    "<=" :  $out $val1 <= $val2 ; break;
           case 
    "<" :  $out $val1 $val2 ; break;
    }

    if( 
    $out )
    echo 
    "yeppa";
    else
    echo 
    "Mannaggia al cane"

  5. #5
    avevo intuitoo l'uso del case, infatti avevo già modificato lo script
    grazie cmq

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    np ciauz.

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.