Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Confrontare variabile di sessione

    quando si confronta una variabile come $_SESSION['valore'] con un intero
    esempio
    if ($_SESSION['valore'] == 1)
    conviene mettere il controllo === invece di == ?

  2. #2

    Re: Confrontare variabile di sessione

    Originariamente inviato da meganoide
    quando si confronta una variabile come $_SESSION['valore'] con un intero
    esempio
    if ($_SESSION['valore'] == 1)
    conviene mettere il controllo === invece di == ?
    http://www.php.net/manual/it/languag...comparison.php

    == 1 significa che il tipo potrebbe essere diverso, per esempio 1 numerico oppure stringa ma sempre 1.

    codice:
      
    $uno = 1; // numerico    
    if(1 == $uno)  echo  "1 NUMERICO è uguale ad $uno NUMERICO 
    ";
    			   
    $uno = "1";  // stringa			   
    
    if(1 !== $uno)   echo "con === 1 STRINGA è diverso da $uno NUMERICO 
    "; 
    if(1 == $uno)    echo "con == 1 stringa è uguale ad 1 NUMERICO 
    ";

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    a me interessa che 1 (valore di $_SESSION['livello']), confrontato con un campo estratto dal db, sia sempre numerico (quindi, non stringa come con le virgolette): è inutile, in questo caso, il confronto con ===?

  4. #4
    Originariamente inviato da meganoide
    a me interessa che 1 (valore di $_SESSION['livello']), confrontato con un campo estratto dal db, sia sempre numerico (quindi, non stringa come con le virgolette): è inutile, in questo caso, il confronto con ===?
    perche' chiedi? fai le tue deduzioni su quanto detto...

    se vuoi che il confronto sia con "valore + tipo NUMERICO" usa === e quindi 1 === 1, ma ricorda che i dati in arrivo da POST/GET ecc... sono sempre e solo delle stringhe, quindi bisogna usare le apposite funzioni (is_numeric(), is_int() ).

    Nel tuo caso un numero estratto dal campo numerico del db e' un tipo NUMERICO, Potrebbe invece non esserlo quello recuperato da $_SESSION. Dipende da come viene memorizzato.

    A parte il fatto che se metti un "livello" (penso di privilegio) in sessione perche' poi confrontarlo successivamente? tanto vale estrarlo di volta in volta. Di solito in base al privilegio memorizzato in sessione includo un menu' al posto di un altro e quindi viene gia' da se poi limite delle azioni possibili allo user.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.