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

    portare al fuori di una funzione una variabile

    ciao a tutti.

    ho una funzione

    questa funzione non prendeva le variabili da fuori... ho risolto passandogliele come parametri.

    ma non riesco a portare fuori dalla funzione una variabile creata all'interno anche perchè, a quanto so, non è possibile perchè sono valide solo all'interno della funzione.

    questa variabile mi serve per fare un confronto in una condizione if...else che sta al di fuori della funzione..

    a seconda dell'esito del confronto viene richiamata dinuovo la funzione.

    qualcuno sa dirmi come portare fuori sta variabile dalla funzione???

    grazie 1000.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    Puoi provare due metodi ma è sempre lo stesso discorso:

    function funzione($param1, $param2, ...)
    {
    ...contenuto della funzione...
    global $variabile;
    $variabile = $qualcosa;
    }

    In questo modo troverai in $variabile globale il contenuto di $qualcosa all'interno della funzione. Oppure:

    function funzione($param1, $param2, ...)
    {
    ...contenuto della funzione...
    $GLOBALS['variabile'] = $qualcosa;
    }

  3. #3

    rettifica

    rettifico...

    php mi dice che la variabile non è stata definita...

    però viene analizzata correttamente nella condizione che sta dopo...

    insomma esiste o no???

    ???????????

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    Creala prima di usare la funzione. Se usi il secondo metodo non dovrebbe darti problemi.

  5. #5
    Codice PHP:
    function nome_funzione(parametri)
    {
       
    // codice....

       
    return $variabile;
    }

    if(
    nome_funzione(parametri) === valore_aspettato
    A grandi linee si fa così

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    In generale ci sono due modi per passare le variabili alle funzioni
    per valore e per riferimento.

    Per valore siglifica che l'interprete si copia il valore della variabile e poi lo utilizza e modifica la copia.
    L'effetto pratico e' che se modifichi le variabili passate per parametro
    all'interno di una funzione alla chiusura di questa le modifiche adranno perse.

    Codice PHP:
    <?php
    function prova($varin) {
         
    $varin ++;
         echo 
    "Variabile dentro la funzione ".$varin."
    \n"
    ;
    }

    $var 1;
    echo 
    "Variabile prima della funzione ".$var1."
    \n"
    ;
    prova($var);
    echo 
    "Variabile dopo la funzione ".$var1."
    \n"
    ;
    ?>

    Per riferimento come si puo facilmente intuire e' quando non viene passato un valore
    ma un riferimento alla variabile e questo lo otteniamo anteponendo una & al passaggio dei parametri.


    Codice PHP:
    <?php
    function prova($varin) {
         
    $varin ++;
         echo 
    "Variabile dentro la funzione ".$varin."
    \n"
    ;
    }

    $var 1;
    echo 
    "Variabile prima della funzione ".$var1."
    \n"
    ;
    prova(&$var);
    echo 
    "Variabile dopo la funzione ".$var1."
    \n"
    ;
    ?>
    Questo discorso cade per gli oggetti (da PHP5 in su) che sono sempre riferimento allo stesso oggetto.

    Andrea
    p.s. non ho provato il codice perche' dall'ufficio non ho un web server spero vada bene

  7. #7
    Salve ragazzi

    Il mio problema è un pò diverso.....

    Ipotizzando che la variabile $_POST abbia assunto un valore x da un altro comando ...
    come faccio a farmi mandare via mail con la funzione


    mail("info@miosito.it", "email bonus", "CONTENUTO DELLA MAIL", "From: test@html.it");

    la funzione mail è stata testata è funziona ma il contenuto dell 'email dopo parecchie prove non è mail il contenuto della variabile.

    Spero che qualcuno possa dare qualche consiglio anche a me.
    Ciao a tutti

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.