io sono curioso di sapere perchè questo sta accadendo in PHP:Confronto tra stringhe, che contiene lo spazio con == in PHP
'78' == ' 78' // true
'78' == '78 ' // false
So che è molto meglio usare strcmp
o meno ===
. So anche che quando si confrontano stringhe numeriche con ==
vengono castate ai numeri, se possibile. Posso anche accettare che lo spazio iniziale sia ignorato, quindi (int)' 78'
è 78, e la risposta è vera nel primo caso, ma sono davvero confuso perché è falso nel secondo.
ho pensato che '78'
è realizzata mediante fusione per 78
e '78 '
è realizzata mediante fusione per 78
, anche, in modo che siano la stessa e la risposta è vero, ma ovviamente, non è questo il caso.
Qualsiasi aiuto sarà apprezzato! Grazie mille in anticipo! :)
Qui http://php.net/manual/fr/language.operators.comparison.php vedere la risposta di arnaud su arnapou dot net. È abbastanza bello – Hearner
Grazie mille @Hearner, ma l'ho già letto prima di pubblicare la domanda qui. :) Mi stavo chiedendo perché "78" sia considerato "stringa numerica" e lo spazio viene ignorato, ma in "78" viene preso in considerazione. – Faery
fai un 'var_dump();' e/o 'print_r();' su entrambi e guarda cosa appare. Questo potrebbe spiegarlo a pieno titolo. –