- Home
- Categorie
- Coding e Sistemistica
- Coding
- Variabile indefinita
- 
							
							
							
							
							
Variabile indefinitaHo 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($s) { $s1=$s+1; print(" Output della funzione frog propria: **$s1** "); } function connect() { $connessione = @mysql_connect("host","username","password"); if ($connessione && mysql_select_db("my_db")) return ($connessione); return (FALSE); } ?>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: 
 
- 
							
							
							
							
							
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(" Output della funzione frog stampato indirettamente:**".frog($s)."** ");function frog($s) { $s1=$s+1; print(" Output della funzione frog propria: **$s1** "); return $s1; }
 
- 
							
							
							
							
							
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