depends on the language. and if NULL/nil/none cast to an integer is zero, then lots of other things may equal zero when cast as an integer.
irb(main):001:0> [ "a".to_i, nil.to_i, nil==nil, nil==0, nil===0 ]
=> [0, 0, true, false, false]
irb(main):002:0> RUBY_VERSION
=> "1.9.1"
Python 2.6.4 (r264:75706, Jan 28 2010, 22:54:14)
[GCC 4.4.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> (None==None, None==0)
(True, False)
# int(None) gives an error