Zrobiłem kilka testów z ciągami używając '=='. Wiem, że porównanie łańcucha "==" nie jest sposobem, ale jest dziwne zachowanie, które chcę rozwiązać.Porównanie łańcuchów PHP za pomocą '=='
Podążam za dokumentacją PHP na tej stronie: http://www.php.net/manual/en/language.operators.comparison.php. To jest test zrobiłem
<?php
var_dump("100" == "1e2"); //outputs boolean true
var_dump((int) "100"); //int 100
var_dump((int) "1e2"); //int 1
?>
Dokumentacja mówi, gdy porównamy ciągów z numerami, PHP najpierw konwertuje ciąg do numerów, ale kiedy konwertować „100” i „” do 1E2 numery nie są one równe. Porównanie powinno dawać wartość false boolean.
Dlaczego to dziwne zachowanie? Dzięki!
Nawiasem mówiąc, dlatego zazwyczaj najlepiej używać '===' zamiast '==', ponieważ wynik jest dużo bardziej przewidywalny! –