Newsgroup: it.comp.www.php
Titolo: Scope delle variabili

Abbiate pazienza non mi risulta che ci siano in pho varabili a livello 
di blocco come in c#!
 
ho questo codice
if( isset($_SESSION['pass'],$_SESSION['val1']) ){
 $lev=(int)$_SESSION['val1'];
 if ($lev<0){
	  $lev=0;
	  }
}
else
{
	$lev=0;
}
 
$lev non funziona! Echo $lev ...niente!
 
così si!
 
$lev=0;
if( isset($_SESSION['pass'],$_SESSION['val1']) ){
 $lev=(int)$_SESSION['val1'];
 if ($lev<0){
	  $lev=0;
	  }
}
else
{
	$lev=0;
}
 
A parte che venendo da dotNet mi piace assai di più dichiarare prima le 
variabili.
Ma in questo assurdo (per me) mondo di roba scarsamente tipizzata che è 
php la
 $lev=(int)$_SESSION['val1'];
non bastava a valorizzare la variabile per tutta la 
pagina?...evidentemente no...ma le mie basi allora vacillano!
Grazie a chi mi risponderà!
 
-- 
----- Italliaaaaa 3227! -----
Bisogna sempre dare spontaneamente quello che non si può impedire ti 
venga tolto.
(Vittorio Alfieri)
 
 

 }
 
Se $_SESSION['pass'] non e' definita $lev non viene inizializzata...
 
Ciao.
 
-- 
Pubblicita' regresso: 
http://www.ferrero.org
 
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...
 

 Ciao.
Fin li ci arrivo....!
scusa è però
PRIMO blocco
if( isset($_SESSION['pass'],$_SESSION['val1']) ){
 $lev=(int)$_SESSION['val1'];
 if ($lev<0){
	  $lev=0;
	  }
}
io la interpreto SE le var di sessione pass e val1 sono settate leggi 
val1 e ponilo in $lev e se quello che leggi è minore di zero ponilo 
uguale a zero!
 
SECONDO BLOCCO
else
{
	$lev=0;
}
e lo interpreto
SE non son settate queste due variabili di sessione poni $lev=0
 
QUINDI COMUNQUE vada $lev dovrebbe uscire da queste righe di codice  
valorizzato!
 
ed invece se non metto prima $lev=0 il bastardo si incasina!
Sarà perchè non sa che tipo di variabile voglio leggere?
Gli darà noia $lev=(int)$_SESSION['val1']; che esegue un cast ad int?
 
L'importante è risolvere...ed ho risolto!...però vorrei anche capire 
perchè!
 
-- 
----- Italliaaaaa 3227! -----
Soldato Joker, cosa ci fa il soldato Palla di Lardo con quel fucile in 
mano nel mio fottutissimo bagno?
 
Sergente Artman [ da: "Full Metal Jacket" ]
 
 

 $lev non funziona! Echo $lev ...niente!
 
Che versione di PHP stai usando.
 
A me (5.3.8) funziona perfettamente e stampa 0.
 
Bye.
 

 Il Fri, 07 Oct 2011 16:12:32 +0200, Wodka40° ha scritto:
il phpinfo mi dichiara
PHP Version 5.3.7-dev
 
UH...dev???.....che roba è!



 
 
ho provato con il debug di netbeans e non fa una grinza...
 
funziona
 
ciao

 $lev non funziona! Echo $lev ...niente!
 
Il codice è giusto, anche a me stampa correttamente lo zero (php 5.2.12).
O c'e' qualche casino con la versione di php che stai usando oppure non 
hai fatto copia incolla del codice che stai eseguendo.
 
Prova a mettere un bel
 
error_reporting(E_ALL);
 
in testa allo script e ad abilitare la visualizzazione degli errori nel 
php.ini
 
display_errors = On
 
e vedi se scopri qualcosa in più.
 
 
ciao
Mauro

 Il 07/10/2011 16.12, Wodka40ï¿œ ha scritto:
zac
il codice ï¿œ quello....il server ï¿œ un lamp installato chissï¿œdachi 
chissï¿œcome....io non sono un sistemista ma ho il FORTE sospetto che chi 
ha installato tutto sia ancor meno esperto di me!
Non ho il coraggio di far partire l'aggiornamento di php (non mi piace 
quella dicitura DEV nella versione) se mi si impalla poi danno la colpa 
a me.
Il bello ï¿œ che il casino da qualche parte ci deve essere....
ho fatto una pagina simile con nome diverso con il codice 
originale....funziona! MAH!
-- 
----- Italliaaaaa 3227! -----
Verace o finta, ï¿œ da temersi sempre  pietï¿œ di plebe.
(Vittorio Alfieri)

quando non sei sicuro dei valori delle variabili ti consiglio:
 
var_dump($_SESSION);
 
così hai modo di capire bene in che stato sei.