beh, non sempre ... diciamo che "normalizza" il confronto.Originariamente inviato da drAlberT
l'operatore di contronto si aspetta numeri
$a = "a";
exit("".(++$a)); // b
$a = "a";
$b = "123";
exit("".($a > $b)); // 1 <== true
$a = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
$b = "b";
exit("".($a > $b)); // false, compara solo il primo carattere
nel caso di stringhe contenenti numeri fa comunque un casting implicito, ma con le stringhe capitano anche cose "strane" ..
$a = chr(255);
exit("".ord($a++)." <= ".ord(++$a)); // 255 <= 255
ergo a mio avviso, confondere numeri e stringhe non è comunque una best practice nemmeno con i linguaggi di scriptings quindi trovo corretta l'osservazione di luca
![]()


Rispondi quotando