Newsgroup: it.comp.www.php
Titolo: E' sotto i miei occhi... :(

print ("$username");
CicloIF();
function CicloIF(){
if ($username == 'Guest' ) print("Uguale a");
if($username != 'Guest' ) print("Diverso da");
}
print ("$username");
sia all'inizio che alla fine $username č Guest
il secondo IF, quello con il "diverso"  viene sempre letto... il primo (che
dovrebbe funzionare in questo caso) sembra che venga bypassato
Non riesco proprio a capire perchč... :((
David

 if($username != 'Guest' ) print("Diverso da");
[...]
Dopo ore e ore di prove ho tolto un uguale e tutto funziona....
 if ($username = 'Guest' ) print("Uguale a");
 if($username != 'Guest' ) print("Diverso da");
Qualcuno sa spiegarmi perchč? Non ho trovato niente nella documentazione di
php :(
David

 Non riesco proprio a capire perchè... :((
Semplice: ti mancano le basi: lo "scope" o visibilità delle variabili e 
delle funzioni non è globale, ma locale. 
 function CicloIF(){
 global $username;
 if ($username == 'Guest' ) print("Uguale a");
 if($username != 'Guest' ) print("Diverso da");
 }
Nel tuo caso è logico che il primo IF venga saltato perche' una variabile 
non inizializzata è messa a NULL per default quando richiamata, quindi 
Guest non è uguale a NULL.
Infatti visualizzando i warning:
Notice: Undefined variable:  username in /root/1.php on line 10
Notice: Undefined variable:  username in /root/1.php on line 11
10 ed 11 sono proprio le due righe con gli if.
Se inveci esegui con global $username restituisce:
Diverso da
senza warning
Consiglio: come prima riga dello script metti
error_reporting(2047); //E_ALL
 
ciao.
-- 
Morelli Michel
ZioBudda.net Coordinator
mic...@ziobudda.net

  if ($username = 'Guest' ) print("Uguale a");
No.. la spiegazione del tuo problema te l'hanno già data.. in questo caso
non fai altro che introdurre un altro errore.. Infatti in questo modo, con
un solo uguale, assegni a $username il valore 'Guest'... quindi poi è ovvio
che risulta true...

}
Non e' ASP. All'interno di CicloIF, la variabile "$username" non esiste,
e quindi non e' uguale a Guest.
Questo e' il codice corretto:
<?
	error_reporting(E_ALL);
	function CicloIF($uname)
	{
		if ('Guest' == $username)
			print 'Uguale a';
		else
			print 'Diverso da';
	}
	print $username;
	CicloIF($username);
	print $username;
?>
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 		if ('Guest' == $username)
			        ^^^^^^^^ uname :)
ciao



sei in una finzione il che isola quello che ci sta scritto dentro con quello
fuori
dalla funzione
<?PHP
$username = "Guest1";
function CicloIF($va){
if ($va == 'Guest' ) print("Uguale a");
if ($va != 'Guest' ) print("Diverso da");
}
CicloIF($username);
?>
<?PHP
$username = "Guest";
if ($username == 'Guest' )
print("Uguale a");
if ($username != 'Guest' )
print("Diverso da");
?>
<?PHP
function CicloIF($va){
if ($va == 'Guest' ) print("Uguale a");
if ($va != 'Guest' ) print("Diverso da");
}
$username = "Guest1";
$usernam2 = "Guest";
CicloIF($username);
CicloIF($usernam2);
?>
NOTE
CicloIF($valore) e' case sensitive
$va viene usato per lavorare all'interno della funzione ci si mette quello
che si vuole
verra sostituito con il 1o valore


 Morelli Michel
Ho imparato un altra cosa MOOOLTO utile! Grazie ancora
David

Ho imparato un altra cosa MOOOLTO utile! Grazie ancora
prego.
ciao
--
Ma il cuore di tanta gente non si domanda mai se valga la pena di fare
tanta fatica per pompare sangue fino al cervello?
--
Michel <ZioBudda> Morelli               
mic...@ziobudda.net
ICQ UIN: 58351764                       PR of Linux in Italy
http://www.ziobudda.net
 
http://www.phpdev.it