• User Attivo

    come usare variabile definita in una funzione

    avendo una funzione del tipo:
    funzione.php

    
    function miafunzione($mioparamentro){
    //codice che genera $variabile1
    $variabile1= implode(",", $foo);
    //altro codice che genera $variabile2
    $variabile2=implode(",", $foo);
    }
    
    
    
    

    come faccio a richiamare le due variabili in un file dove ho incluso il file che contiene la funzione descritta sopra?
    script.php

    
    include 'funzione.php';
    miafunzione(x);
    printf($variabile1);
    printf($variabile2);
    
    

    questo codice non funziona ma non risultano errori quando eseguo script.php
    qualcuno sa dirmi in cosa sbaglio?

    grazie.


  • Super User

    i metodi per passare una variabile all'esterno di una funzione sono 2:

    1. tramite il valore di ritorno della funzione quindi:

    function mia()
    $var=1;
    return $var;

    oppure passando la variabile alla funzione per indirizzo anteponendo la e commerciale:

    function mia(&$var)
    $var=1;

    in entrambi i modi puoi recuperare la variabile all'esterno.

    esiste a dire il vero un altro metodo che non è molto bello ed elegante ma è pratico a volte, usare le variabili globali.

    $var=0;

    miafunzione();

    function miafunzione()
    global $var;

    $var = 1;

    in questo modo la variabile $var mantiene il valore acquisito nella funzione.


  • User Attivo

    grazie delle delucidazioni tymba.
    in ogni modo ho risolto cosi:
    funzione.php diventa class.php dove definisco una classe.

    
    class miaclass{
    var $variabile1;
    var $variabile2;
    function miafunzione($mioparamentro){
    //codice che genera $variabile1
    $this->variabile1= implode(",", $foo);
    //altro codice che genera $variabile2
    $this->variabile2=implode(",", $foo);
    }
    }
    
    

    script.php diventa

    
    require 'class.php';
    $bar= new miaclass();
    $bar->miafunzione(mioparametro);
    echo $bar->variabile1;
    echo $bar->variabile2;
    
    
    

    cosi ho cominciato anche a programmare ad oggetti :arrabbiato:
    è proprio vero il miglior modo per imparare a programmare è cercare di risolvere i problemi.

    sulle classi avevo letto molto ma non ci avevo capito un gran che, ed anche ora molti lati mi sono oscuri o meglio un po ostici da digerire però le potenzialità sono ottime.