• User Attivo

    Variabile indefinita

    Ho un piccolo rompicapo che per me risulta un MISTERO 😄 .

    Per semplificarvi le cose posto 2 file molto corti che però vanno subito al nocciolo della situazione.

    Primo file prova.php```
    <?php
    include"frog.func.php";
    connect() or print("
    No Connect !< /br>");
    $_GET[s]=$s;
    if(isset($s))
    {
    frog($s);
    print("
    Output della funzione frog stampato indirettamente:$s1
    ");
    } else {
    print("
    Il valore per s non è definito");
    }
    ?>

    
    Secondo file contenente funzione richiamata sopra + la connect() nel caso vogliate provare frog.func.php```
    <?php
    function frog&#40;$s&#41;
    &#123;
    $s1=$s+1;
    print&#40;"
    Output della funzione frog propria&#58; **$s1**
    "&#41;;
    &#125;
    
    
    function connect&#40;&#41;
    &#123;
    $connessione = @mysql_connect&#40;"host","username","password"&#41;;
    if &#40;$connessione && mysql_select_db&#40;"my_db"&#41;&#41;
    return &#40;$connessione&#41;;
    return &#40;FALSE&#41;;
    &#125;
    ?>
    

    Ebbene cosa succede in questo caso?
    Il valore della variabile $s1 come mai viene stampato una sola volta?

    Se per caso editate i file per verificare ricordate di aggiungere ?s=678 alla fine dell'url. In questo modo

    h t t p : / / localhost/prova.php?s=678 :bho:


  • User

    Non sono molto esperto di php, ma penso che non puoi usare una variabile dichiarata in una funzione all'esterno della stessa, a meno che non fai un return di quella variabile oppure con le variabili globali, che purtroppo non ho ancora capito bene come funzionano....

    :bho:

    Non puoi fare così ?

    print&#40;"
    Output della funzione frog stampato indirettamente:**".frog&#40;$s&#41;."**
    "&#41;; 
    
    function frog&#40;$s&#41; 
    &#123; 
    $s1=$s+1; 
    print&#40;"
    Output della funzione frog propria&#58; **$s1**
    "&#41;; 
    return $s1;
    &#125; 
    
    

  • Super User

    il problema risiede esattamente nella visibilità della variabile chiamato anche scope della variabile.

    leggi questo trafiletto
    http://www.risorse.net/php/tutorial.php?P=7