In Ruby, the only things that are false are
false. This is a nice change over other languages where other things evaluate to false in boolean tests. Like C and many others, which considers the integer 0 to be false. So is 0.0 false? How about 1e-999999? Or there's Perl, which also considers an empty string to be false, and auto-casts between numbers and strings, which can make things fun. And of course Perl has Perlish insanity like
0E0, "zero but true".
However all languages pale in comparison with PHP. They provide these handy charts to help you figure out what's true and what's false.
That really sums up PHP well. You have three standard functions (isset, is_null, empty) with completely inconsistent names. Two equality test operators whose meaning completely changes between PHP versions. And then a couple of 12x12 grids of crap necessary to figure out how they behave.
"0" == 0? True.
0 == ""? True.
"0" == ""? False...
null == array()? True....?
Really makes you appreaciate Ruby.