Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I once lost most of an afternoon debugging an issue where orders in a PHP e-commerce system would very occasionally fail.

Turns out several months before, someone was doing some refactoring, moved some methods around, but also changed a "==" to a "===" in the process. Generally a good idea, but it slipped through to production without anyone noticing or breaking any tests.

The issue ended up being that a rare code path in a tangentially related method would cause that method to return a float instead of an int. This propagated through, eventually causing a check of 0.0 === 0 to fail where previously 0.0 == 0 passed.



The problem here is == was used in the beginning. Always use ===.


Unfortunately "use X from the beginning" is rarely a solution when you're no longer at the beginning.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: