PDA

View Full Version : chiarimento su semplice esempio PHP


Manson666
12-06-2003, 13:11
Scusate ma ho nuovamente bisogno di voi per capire una semplice cosa in PHP
il listato è questo:

<?
if (!$a){
$a = "ok";
}else{
$a = "ko";
}

Che vuol dire if (!$a) ? Se la variabile $a è falsa?
Ma falsa in che senso?che vuol dire falsa in questo caso? e soprattutto chi è che decide se è vera o falsa?

Probabilmente ho scritto una marea di cavolate....

cionci
12-06-2003, 15:43
Originally posted by "Manson666"

Che vuol dire if (!$a) ? Se la variabile $a è falsa?
Ma falsa in che senso?che vuol dire falsa in questo caso? e soprattutto chi è che decide se è vera o falsa?
In pratica sì... !$a ritorna vero se $a è uguale a zero...
if($a) ad esempio ritorna vero se $a è deiversa da zero...

recoil
12-06-2003, 17:52
credo che anche php consideri lo 0 come falso e ogni altro numero come vero.
personalmente non uso mai questo genere di confronti.
preferisco mettere != 0 o == 0 perché si capisce meglio, sempre a mio parere

Manson666
12-06-2003, 18:40
mmm...aspettate...visto che $a non era stata precedentemente dichiarata non è che falso è inteso che non esiste (che è vuota?) e quindi la if lo manda all'istruzione di assegnazione che ci mette dentro "ok"?

cionci
12-06-2003, 19:21
Originally posted by "Manson666"

mmm...aspettate...visto che $a non era stata precedentemente dichiarata non è che falso è inteso che non esiste (che è vuota?) e quindi la if lo manda all'istruzione di assegnazione che ci mette dentro "ok"?
Che non fosse stata dichiarata non lo si vedeva dal codice...in questo caso se non sbaglio PHP dovrebbe rendere un warning...
Per vedere se una variabile non è stata valorizzata si usa if(!isset($var))...

Manson666
12-06-2003, 19:32
No non da nessun warning...a logica penso che la crei automaticamente e le assegni il valore 0 che da quello che ho capito è falso...ho anche provato a crearla prima ed ad assegnarle il valore 0 e così mi manda all'if di quando è falsa, se ci metto un altro valore mi manda all'if di quando è vera...discroso un po' contorto...

cionci
12-06-2003, 19:40
Prova a stamparlo prima di dargli un valore e vedrai che non c'è zero...ma probabilmente NULL...

Comuqnue il modo corretto per controllare se una varibile è valorizzata è isset...

diapolon
13-06-2003, 00:27
Originally posted by "cionci"

Prova a stamparlo prima di dargli un valore e vedrai che non c'è zero...ma probabilmente NULL...

Comuqnue il modo corretto per controllare se una varibile è valorizzata è isset...

si può anche mettere EMPTY($a) che controlla se la variabile è o meno vuota

cionci
13-06-2003, 09:06
empty è un po' diverso...perchè rende TRUE anche quando la variabile è valorizzata a 0...

Manson666
14-06-2003, 13:57
Mi si crea un altro impiccio con questo semplice sempio del ciclo while,
facendolo partire apache si blocca e mi simimpalla la finestra di explorer...da un problema simile anche con l'interprete dell'editor php....

<html>

<head>
<title>ciclo while</title>
</head>

<body>
<?
$i=1;
while (i <=6){
?>
<br><font size="<?=$i?>">Questo è un font con size = <?=$i?></font>
<?
$i++;
}
?>

</body>

</html>

cionci
14-06-2003, 15:14
while ($i <=6){

Strano comunque che si painti Apache...

Manson666
14-06-2003, 17:39
ok...sarà che tra una settimana ho gli esami e mi ci metto solo un po' la sera per sfogo ma quell'errore era troppo cretino... :-(

Manson666
14-06-2003, 17:40
grazie cmq :-)