Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495

    problema nella gestione di variabili globali

    ciao!
    ho una funzione che valuta se un utente è amministratore o iscritto. nel primo caso ritorna 1 nel secondo 0.
    Ho bisogno che questi due valori 1 e 0 siano memorizzati in una variabile globale, che possa essere quindi vista in tutto il mio programma.
    ho usato $GLOBALS ma mi stampa sempre 0 a video.

    Ho un file config.php in cui ho definito $a=0;

    e in file index.php che richiama il congih.php con la funzione

    function login()
    {
    if(utente=amministratore)
    { $a=1
    $GLOBALS['a'] //dovrei assegnare 1 alla variabile globale ma stampa 0
    }
    else $GLOBALS['a'] //stampa 0
    }


  2. #2
    Ti suggerisco di iniziare studiando le basi del PHP:

    http://www.php.net/manual/en/languag...bles.scope.php
    http://www.php.net/manual/en/reserve...es.globals.php
    http://www.php.net/global

    In ogni modo, l'utilizzo delle variabili globali dovrebbe essere evitato ogni volta che è possibile. Perchè non utilizzi una funzione con una variabile statica per ottimizzarne il funzionamento?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    grazie,ho già guardato i link che mi hai inviato e in effetti ho provato in diersi modi pure con global e non $GLOBALS ma non rieso ad ottenere quallo che volgio ed applicarlo al mio caso..riesci a darmi una mano?

  4. #4
    Posta le varie prove che hai fatto ed i riferimenti del manuale da cui hai preso spunto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    Una è quella nel primo post tratto da: http://www.php.net/manual/en/reserve...es.globals.php

    la seconda è:

    Ho un file config.php in cui ho definito
    global $a;
    $a=0;

    e in file index.php che richiama il congih.php con la funzione

    function login()
    {
    if(utente=amministratore)
    {
    global $a;
    $a=1
    print_r($a); //dovrei assegnare 1 alla variabile globale
    }
    else print_r($a); //dovrei assegnare 0 alla variabile globale
    }

    cioè la mia variabile globale può assumere i valori 0 e 1 e quando assume 1 viene visto a livello globale in tutto il mio programma ?

    da: http://www.php.net/manual/en/languag...bles.scope.php

  6. #6
    Studiati questo codice:

    Codice PHP:
    <?php
    // file config.php
    $GLOBALS['a'] = 0// valore di default
    ?>
    Codice PHP:
    <?php
    // index.php

    function login($utente 'guest') {
      global 
    $a;
      if (
    $utente == 'amministratore') {
        
    $a 1;
      } else {
        
    $a 0;
      }
    }

    var_dump($GLOBALS['a']); // null

    include(dirname(__FILE__) . '/config.php');
    var_dump($GLOBALS['a']); // int 0

    login();
    var_dump($GLOBALS['a']); // int 0

    login('amministratore');
    var_dump($GLOBALS['a']); // int 1
    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    ti ringrazio tanto!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    Ma la stessa cosa può essere fatta con un array?

  9. #9
    Se intendi dire "posso usare al posto di $a una variabile contenente un array", la risposta è si.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.