Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    98

    Contenuto variabili non visibile a funzioni

    Salve,
    ho un problema con la visione del contenuto di una variabile da una funzione..

    in un file chiamato test2.php ho questo codice:

    Codice PHP:
    $varp "contenuto";
    function 
    a() {
        global 
    $varp;
        echo (
    "Variabile: ".$varp);

    in un file chiamato test.php ho:

    Codice PHP:
    function b() {
        include(
    "test2.php");
        
    a();
    }
    b(); 
    Il risultato è che aprendo test.php $varp non viene stampato, o meglio ha valore nullo.. come mai? come posso risolvere?

    grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nel file di configurazione php.ini è probabilmente specificato
    register_globals = off
    il che ti inibisce l'uso delle variabili globali.

  3. #3
    Puoi risolvere così.
    Codice PHP:
    function a($str) { 
        echo (
    "Variabile: ".$str); 
    }

    $varp "xxx";
    a($varp); 
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    98
    @Alhazred: a me risulta che l'impostazione è settata su on (non ho modo di accedere al file php.ini, ma ho visto che con ini_get() mi viene restituito 1, cioè true) e infatti se richiamo a() fuori da b() allora funziona correttamente..

    @alcio74: Ci avevo pensato, ma purtroppo non posso passare la variabile come parametro perchè in realtà gli passo già fin troppi parametri, quindi volevo utilizzare variabili globali

  5. #5
    Originariamente inviato da GrG
    ma purtroppo non posso passare la variabile come parametro perchè in realtà gli passo già fin troppi parametri
    Questa non l'ho capita
    Le funzioni sono fatte anche per ricevere parametri, ma se come dici ne riceve fin troppi probabilmente dovresti rivedere qualcosa nella struttura del tuo codice.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    i register globals non importano più di tanto perché non si tratta dei parametri passati dal browser

    poi, passare dei argomenti tramite variabili globali non é mai la miglior idea, com'é anche includere codice dentro una funziona oppure un'altra funziona - alcio ha datto la soluzione giusta

    comunque, in caso che non lo puoi cambiare, il problema deriva dal fatto che includi test2 in b() é quindi la prima definizione della variabile la rende locale invece di globale, poi dentro a() peró l'accedi come globale quindi é diversa. dovresti definirla in test2 come global.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    98
    si in effetti, ho steso un codice provvisorio che ora devo risistemare un pò :P

    comunque ho capito dov'era il problema, nel file test2.php quando dichiaro la variabile $varp prima della funzione a() non l'avevo resa globale scrivendo global.. quindi così funziona:

    Codice PHP:
    global $varp "contenuto"
    function 
    a() { 
        global 
    $varp
        echo (
    "Variabile: ".$varp); 

    Grazie comunque a tutti per l'interessamento

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.