PDA

View Full Version : [PHP] Problema IF


Phaedra
09-10-2007, 14:31
Salve a tutti ! :)

Vi posto un problema che mi fa un po riflettere, uso php sporadicamente per realizzare pagine web, qualche volta mi capita di usarlo anche per fare qualche script al volo.

Finora non mi era mai capitato, ma ho notato una cosa in una struttura IF :

$a = "0001";
$b = " 0001";
$c = "0001 ";

$a == $b (TRUE)
$a === $b (FALSE)
$a == $c (FALSE)

non dovrebbero essere tutte false? :help:

D'accordo sull'uso dei tre =, ma anche la prima dovrebbe essere falsa! o sbaglio?

Ciao ! :stordita:

andbin
09-10-2007, 14:37
non dovrebbero essere tutte false?Dalla documentazione:

If you compare an integer with a string, the string is converted to a number. If you compare two numerical strings, they are compared as integers.

Phaedra
09-10-2007, 14:42
D'accordo su questo, ma le "" non dovrebbero definire la variabile come string?

inoltre ho provato con questa forma :

$a = (string) "0001";
$b = (string) " 0001";

stessa cosa.

Inoltre perchè con lo spazio a sinistra e non con quello a destra?

Grazie per la iper veloce risposta !!! :D

andbin
09-10-2007, 14:58
ma le "" non dovrebbero definire la variabile come string?Sì ma per la comparazione il PHP va anche a vedere se il contenuto della stringa rappresenta un numero (con formato valido). È una cosa in più, in altri linguaggi non c'è.

Inoltre perchè con lo spazio a sinistra e non con quello a destra?Dovrei andare a leggere bene la documentazione ma posso ipotizzare ora che gli spazi a sinistra non siano significativi mentre quelli a destra lo rendano non numerico. Ma non prendere alla lettera quanto appena detto. ;)