Jestem ciekaw dlaczego tak się dzieje w PHP:porównywania ciągów zawierających przestrzeń == PHP
'78' == ' 78' // true
'78' == '78 ' // false
wiem, że to o wiele lepiej jest użyć strcmp
lub najmniejszą ===
. Wiem też, że jeśli porównasz ciągi liczbowe z ==
, są one rzutowane na liczby, jeśli to możliwe. Mogę też zaakceptować, że wiodąca przestrzeń jest ignorowana, więc (int)' 78'
ma 78, a odpowiedź jest prawdziwa w pierwszym przypadku, ale jestem naprawdę zdezorientowana, dlaczego jest fałszywa w drugim.
Myślałem, że '78'
jest lanego do 78
i '78 '
jest lanego do 78
też, więc są one takie same, a odpowiedź jest prawdziwa, ale oczywiście, że nie jest to przypadek.
Każda pomoc zostanie doceniona! Z góry bardzo dziękuję! :)
Tutaj http://php.net/manual/fr/language.operators.comparison.php zobacz odpowiedź od arnaud at arnapou dot net. Jest całkiem niezły – Hearner
Bardzo dziękuję @Hearner, ale przeczytałem go już przed opublikowaniem pytania tutaj. :) Właśnie się zastanawiałem, dlaczego "78" jest uważane za "ciąg liczbowy", a spacja jest ignorowana, ale w '78 'jest brana pod uwagę. – Faery
Wykonaj 'var_dump();' i/lub 'print_r();' na obu i zobacz, co się pojawi. To może wyjaśniać to samo w sobie. –