php, моя дорогая старая дружка.
хорошо, так что я могу смириться с тем, почему строка '0' будет ложным значением. это справедливо, если учесть, что '0'
- это то же самое, что 0
в языке со слабой типизацией, а 0
- false
в языке со слабой типизацией. так что это дает false
== 0
== '0'
.
отлично хорошо ... НО !! О чем это все?
<?php
print "number of surprised persons: " . ('false' == 0);
вывод ....
number of surprised persons: 1
как это разумно? я единственный, кто удивлен этим? что я не вижу?
дальнейшее тестирование доказало, что целое число 0 (оператор ==) равно
0 <-- integer
false <-- boolean
null <-- just.. you know, null
'0' <-- string
'' <-- string
'false' <-- string
'true' <-- string
'null' <-- string
естественно, я в основном использую оператор === для сравнения. и теперь, когда я знаю об этом, мне, конечно, придется скорректировать свое программирование, никаких вопросов по этому поводу. но до сих пор! может кто-нибудь пролить свет pl0x?